dever 3 years ago
parent
commit
170bff5f57
48 changed files with 8982 additions and 0 deletions
  1. 21 0
      assets/lib/echarts/echarts.min.js
  2. BIN
      assets/lib/jquery/.DS_Store
  3. 30 0
      assets/lib/jquery/area/area.js
  4. 6198 0
      assets/lib/jquery/area/area.json
  5. 18 0
      assets/lib/jquery/area/area.php
  6. 79 0
      assets/lib/jquery/autocompleter.css
  7. 7 0
      assets/lib/jquery/autocompleter.min.js
  8. 1 0
      assets/lib/jquery/base64.min.js
  9. 92 0
      assets/lib/jquery/excel.xlsx.js
  10. 0 0
      assets/lib/jquery/json.min.js
  11. 12 0
      assets/lib/jquery/less.min.js
  12. 8 0
      assets/lib/jquery/masonry.min.js
  13. 0 0
      assets/lib/jquery/md5.min.js
  14. 1 0
      assets/lib/jquery/pace.min.js
  15. 28 0
      assets/lib/jquery/pcasunzips.js
  16. 1 0
      assets/lib/jquery/xlsx.min.js
  17. 116 0
      assets/lib/michat/chart.js
  18. BIN
      assets/lib/michat/image/bg.jpg
  19. 271 0
      assets/lib/michat/michat.css
  20. 0 0
      assets/lib/michat/michat.css.map
  21. 82 0
      assets/lib/michat/michat.js
  22. 321 0
      assets/lib/michat/michat.less
  23. 717 0
      assets/lib/michat/mimc-min_1_0_2.js
  24. 29 0
      assets/lib/michat/template.html
  25. 1 0
      assets/lib/require/css.js
  26. 0 0
      assets/lib/require/require.js
  27. 3 0
      assets/lib/socket/swfobject.js
  28. 5 0
      assets/lib/socket/websocket.js
  29. BIN
      assets/lib/socket/websocket.swf
  30. BIN
      assets/lib/supersized/progress.gif
  31. 677 0
      assets/lib/supersized/supersized.3.2.7.min.js
  32. 1 0
      assets/lib/supersized/supersized.css
  33. BIN
      assets/lib/ztree/zTreeStyle/img/diy/1_close.png
  34. BIN
      assets/lib/ztree/zTreeStyle/img/diy/1_open.png
  35. BIN
      assets/lib/ztree/zTreeStyle/img/diy/2.png
  36. BIN
      assets/lib/ztree/zTreeStyle/img/diy/3.png
  37. BIN
      assets/lib/ztree/zTreeStyle/img/diy/4.png
  38. BIN
      assets/lib/ztree/zTreeStyle/img/diy/5.png
  39. BIN
      assets/lib/ztree/zTreeStyle/img/diy/6.png
  40. BIN
      assets/lib/ztree/zTreeStyle/img/diy/7.png
  41. BIN
      assets/lib/ztree/zTreeStyle/img/diy/8.png
  42. BIN
      assets/lib/ztree/zTreeStyle/img/diy/9.png
  43. BIN
      assets/lib/ztree/zTreeStyle/img/line_conn.gif
  44. BIN
      assets/lib/ztree/zTreeStyle/img/loading.gif
  45. BIN
      assets/lib/ztree/zTreeStyle/img/zTreeStandard.gif
  46. BIN
      assets/lib/ztree/zTreeStyle/img/zTreeStandard.png
  47. 97 0
      assets/lib/ztree/zTreeStyle/zTreeStyle.css
  48. 166 0
      assets/lib/ztree/ztree.all.min.js

File diff suppressed because it is too large
+ 21 - 0
assets/lib/echarts/echarts.min.js


BIN
assets/lib/jquery/.DS_Store


+ 30 - 0
assets/lib/jquery/area/area.js

@@ -0,0 +1,30 @@
+/* PCAS (Province City Area Selector 省、市、地区联动选择JS封装类) Ver 2.02 完整版 *\
+
+ 制作时间:2005-12-30
+ 更新时间:2006-01-24
+ 数据修正:2012-01-17(截止2011年10月31日)
+
+ 演示地址:http://www.popub.net/script/pcasunzip.html
+ 下载地址:http://www.popub.net/script/pcasunzip.js
+ 应用说明:页面包含<script type="text/javascript" src="pcasunzip.js" charset="gb2312"></script>
+ 省市联动
+ new PCAS("Province","City")
+ new PCAS("Province","City","吉林省")
+ new PCAS("Province","City","吉林省","吉林市")
+ 省市地区联动
+ new PCAS("Province","City","Area")
+ new PCAS("Province","City","Area","吉林省")
+ new PCAS("Province","City","Area","吉林省","松原市")
+ new PCAS("Province","City","Area","吉林省","松原市","宁江区")
+ 省、市、地区对象取得的值均为实际值。
+ 注:省、市、地区提示信息选项的值为""(空字符串)
+
+ \*** 程序制作/版权所有:崔永祥(333) E-Mail:zhadan007@21cn.com 网址:http://www.popub.net ***/
+
+
+SPT = "-省份-";
+SCT = "-城市-";
+SAT = "-地区-";
+ShowT = 0; /* 提示文字 0:不显示 1:显示 */
+PCAD = "__STRING__";
+if (ShowT)PCAD = SPT + "$" + SCT + "," + SAT + "#" + PCAD; PCAArea = []; PCAP = []; PCAC = []; PCAA = []; PCAN = PCAD.split("#"); for (i = 0; i < PCAN.length; i++){PCAA[i] = []; TArea = PCAN[i].split("$")[1].split("|"); for (j = 0; j < TArea.length; j++){PCAA[i][j] = TArea[j].split(","); if (PCAA[i][j].length == 1)PCAA[i][j][1] = SAT; TArea[j] = TArea[j].split(",")[0]}PCAArea[i] = PCAN[i].split("$")[0] + "," + TArea.join(","); PCAP[i] = PCAArea[i].split(",")[0]; PCAC[i] = PCAArea[i].split(',')}function PCAS(){this.SelP = document.getElementsByName(arguments[0])[0]; this.SelC = document.getElementsByName(arguments[1])[0]; this.SelA = document.getElementsByName(arguments[2])[0]; this.DefP = this.SelA?arguments[3]:arguments[2]; this.DefC = this.SelA?arguments[4]:arguments[3]; this.DefA = this.SelA?arguments[5]:arguments[4]; this.SelP.PCA = this; this.SelC.PCA = this; this.SelP.onchange = function(){PCAS.SetC(this.PCA)}; if (this.SelA)this.SelC.onchange = function(){PCAS.SetA(this.PCA)}; PCAS.SetP(this)}; PCAS.SetP = function(PCA){for (i = 0; i < PCAP.length; i++){PCAPT = PCAPV = PCAP[i]; if (PCAPT == SPT)PCAPV = ""; PCA.SelP.options.add(new Option(PCAPT, PCAPV)); if (PCA.DefP == PCAPV)PCA.SelP[i].selected = true}PCAS.SetC(PCA)}; PCAS.SetC = function(PCA){PI = PCA.SelP.selectedIndex; PCA.SelC.length = 0; for (i = 1; i < PCAC[PI].length; i++){PCACT = PCACV = PCAC[PI][i]; if (PCACT == SCT)PCACV = ""; PCA.SelC.options.add(new Option(PCACT, PCACV)); if (PCA.DefC == PCACV)PCA.SelC[i - 1].selected = true}if (PCA.SelA)PCAS.SetA(PCA)}; PCAS.SetA = function(PCA){PI = PCA.SelP.selectedIndex; CI = PCA.SelC.selectedIndex; PCA.SelA.length = 0; for (i = 1; i < PCAA[PI][CI].length; i++){PCAAT = PCAAV = PCAA[PI][CI][i]; if (PCAAT == SAT)PCAAV = ""; PCA.SelA.options.add(new Option(PCAAT, PCAAV)); if (PCA.DefA == PCAAV)PCA.SelA[i - 1].selected = true} try{$(PCA.SelA).trigger('change')} catch (e){}}

+ 6198 - 0
assets/lib/jquery/area/area.json

@@ -0,0 +1,6198 @@
+[
+  {
+    "name": "北京市",
+    "list": [
+      {
+        "name": "北京市",
+        "list": [
+          "东城区",
+          "西城区",
+          "朝阳区",
+          "丰台区",
+          "石景山区",
+          "海淀区",
+          "门头沟区",
+          "房山区",
+          "通州区",
+          "顺义区",
+          "昌平区",
+          "大兴区",
+          "怀柔区",
+          "平谷区",
+          "密云区",
+          "延庆区",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "天津市",
+    "list": [
+      {
+        "name": "天津市",
+        "list": [
+          "和平区",
+          "河东区",
+          "河西区",
+          "南开区",
+          "河北区",
+          "红桥区",
+          "东丽区",
+          "西青区",
+          "津南区",
+          "北辰区",
+          "武清区",
+          "宝坻区",
+          "滨海新区",
+          "宁河区",
+          "静海区",
+          "蓟州区",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "河北省",
+    "list": [
+      {
+        "name": "石家庄市",
+        "list": [
+          "长安区",
+          "桥西区",
+          "新华区",
+          "井陉矿区",
+          "裕华区",
+          "井陉县",
+          "正定县",
+          "栾城区",
+          "行唐县",
+          "灵寿县",
+          "高邑县",
+          "深泽县",
+          "赞皇县",
+          "无极县",
+          "平山县",
+          "元氏县",
+          "赵县",
+          "辛集市",
+          "藁城区",
+          "晋州市",
+          "新乐市",
+          "鹿泉区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "唐山市",
+        "list": [
+          "路南区",
+          "路北区",
+          "古冶区",
+          "开平区",
+          "丰南区",
+          "丰润区",
+          "滦县",
+          "滦南县",
+          "乐亭县",
+          "迁西县",
+          "玉田县",
+          "曹妃甸区",
+          "遵化市",
+          "迁安市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "秦皇岛市",
+        "list": [
+          "海港区",
+          "山海关区",
+          "北戴河区",
+          "青龙满族自治县",
+          "昌黎县",
+          "抚宁区",
+          "卢龙县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "邯郸市",
+        "list": [
+          "邯山区",
+          "丛台区",
+          "复兴区",
+          "峰峰矿区",
+          "临漳县",
+          "成安县",
+          "大名县",
+          "涉县",
+          "磁县",
+          "肥乡区",
+          "永年区",
+          "邱县",
+          "鸡泽县",
+          "广平县",
+          "馆陶县",
+          "魏县",
+          "曲周县",
+          "武安市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "邢台市",
+        "list": [
+          "桥东区",
+          "桥西区",
+          "邢台县",
+          "临城县",
+          "内丘县",
+          "柏乡县",
+          "隆尧县",
+          "任县",
+          "南和县",
+          "宁晋县",
+          "巨鹿县",
+          "新河县",
+          "广宗县",
+          "平乡县",
+          "威县",
+          "清河县",
+          "临西县",
+          "南宫市",
+          "沙河市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "保定市",
+        "list": [
+          "竞秀区",
+          "莲池区",
+          "满城区",
+          "清苑区",
+          "涞水县",
+          "阜平县",
+          "徐水区",
+          "定兴县",
+          "唐县",
+          "高阳县",
+          "容城县",
+          "涞源县",
+          "望都县",
+          "安新县",
+          "易县",
+          "曲阳县",
+          "蠡县",
+          "顺平县",
+          "博野县",
+          "雄县",
+          "涿州市",
+          "定州市",
+          "安国市",
+          "高碑店市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "张家口市",
+        "list": [
+          "桥东区",
+          "桥西区",
+          "宣化区",
+          "下花园区",
+          "张北县",
+          "康保县",
+          "沽源县",
+          "尚义县",
+          "蔚县",
+          "阳原县",
+          "怀安县",
+          "万全区",
+          "怀来县",
+          "涿鹿县",
+          "赤城县",
+          "崇礼区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "承德市",
+        "list": [
+          "双桥区",
+          "双滦区",
+          "鹰手营子矿区",
+          "承德县",
+          "兴隆县",
+          "平泉市",
+          "滦平县",
+          "隆化县",
+          "丰宁满族自治县",
+          "宽城满族自治县",
+          "围场满族蒙古族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "沧州市",
+        "list": [
+          "新华区",
+          "运河区",
+          "沧县",
+          "青县",
+          "东光县",
+          "海兴县",
+          "盐山县",
+          "肃宁县",
+          "南皮县",
+          "吴桥县",
+          "献县",
+          "孟村回族自治县",
+          "泊头市",
+          "任丘市",
+          "黄骅市",
+          "河间市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "廊坊市",
+        "list": [
+          "安次区",
+          "广阳区",
+          "固安县",
+          "永清县",
+          "香河县",
+          "大城县",
+          "文安县",
+          "大厂回族自治县",
+          "霸州市",
+          "三河市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "衡水市",
+        "list": [
+          "桃城区",
+          "枣强县",
+          "武邑县",
+          "武强县",
+          "饶阳县",
+          "安平县",
+          "故城县",
+          "景县",
+          "阜城县",
+          "冀州区",
+          "深州市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "山西省",
+    "list": [
+      {
+        "name": "太原市",
+        "list": [
+          "小店区",
+          "迎泽区",
+          "杏花岭区",
+          "尖草坪区",
+          "万柏林区",
+          "晋源区",
+          "清徐县",
+          "阳曲县",
+          "娄烦县",
+          "古交市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "大同市",
+        "list": [
+          "城区",
+          "矿区",
+          "南郊区",
+          "新荣区",
+          "阳高县",
+          "天镇县",
+          "广灵县",
+          "灵丘县",
+          "浑源县",
+          "左云县",
+          "大同县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阳泉市",
+        "list": [
+          "城区",
+          "矿区",
+          "郊区",
+          "平定县",
+          "盂县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "长治市",
+        "list": [
+          "长治县",
+          "襄垣县",
+          "屯留县",
+          "平顺县",
+          "黎城县",
+          "壶关县",
+          "长子县",
+          "武乡县",
+          "沁县",
+          "沁源县",
+          "潞城市",
+          "城区",
+          "郊区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "晋城市",
+        "list": [
+          "城区",
+          "沁水县",
+          "阳城县",
+          "陵川县",
+          "泽州县",
+          "高平市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "朔州市",
+        "list": [
+          "朔城区",
+          "平鲁区",
+          "山阴县",
+          "应县",
+          "右玉县",
+          "怀仁县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "晋中市",
+        "list": [
+          "榆次区",
+          "榆社县",
+          "左权县",
+          "和顺县",
+          "昔阳县",
+          "寿阳县",
+          "太谷县",
+          "祁县",
+          "平遥县",
+          "灵石县",
+          "介休市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "运城市",
+        "list": [
+          "盐湖区",
+          "临猗县",
+          "万荣县",
+          "闻喜县",
+          "稷山县",
+          "新绛县",
+          "绛县",
+          "垣曲县",
+          "夏县",
+          "平陆县",
+          "芮城县",
+          "永济市",
+          "河津市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "忻州市",
+        "list": [
+          "忻府区",
+          "定襄县",
+          "五台县",
+          "代县",
+          "繁峙县",
+          "宁武县",
+          "静乐县",
+          "神池县",
+          "五寨县",
+          "岢岚县",
+          "河曲县",
+          "保德县",
+          "偏关县",
+          "原平市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "临汾市",
+        "list": [
+          "尧都区",
+          "曲沃县",
+          "翼城县",
+          "襄汾县",
+          "洪洞县",
+          "古县",
+          "安泽县",
+          "浮山县",
+          "吉县",
+          "乡宁县",
+          "大宁县",
+          "隰县",
+          "永和县",
+          "蒲县",
+          "汾西县",
+          "侯马市",
+          "霍州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "吕梁市",
+        "list": [
+          "离石区",
+          "文水县",
+          "交城县",
+          "兴县",
+          "临县",
+          "柳林县",
+          "石楼县",
+          "岚县",
+          "方山县",
+          "中阳县",
+          "交口县",
+          "孝义市",
+          "汾阳市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "内蒙古自治区",
+    "list": [
+      {
+        "name": "呼和浩特市",
+        "list": [
+          "新城区",
+          "回民区",
+          "玉泉区",
+          "赛罕区",
+          "土默特左旗",
+          "托克托县",
+          "和林格尔县",
+          "清水河县",
+          "武川县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "包头市",
+        "list": [
+          "东河区",
+          "昆都仑区",
+          "青山区",
+          "石拐区",
+          "白云鄂博矿区",
+          "九原区",
+          "土默特右旗",
+          "固阳县",
+          "达尔罕茂明安联合旗",
+          "其它区"
+        ]
+      },
+      {
+        "name": "乌海市",
+        "list": [
+          "海勃湾区",
+          "海南区",
+          "乌达区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "赤峰市",
+        "list": [
+          "红山区",
+          "元宝山区",
+          "松山区",
+          "阿鲁科尔沁旗",
+          "巴林左旗",
+          "巴林右旗",
+          "林西县",
+          "克什克腾旗",
+          "翁牛特旗",
+          "喀喇沁旗",
+          "宁城县",
+          "敖汉旗",
+          "其它区"
+        ]
+      },
+      {
+        "name": "通辽市",
+        "list": [
+          "科尔沁区",
+          "科尔沁左翼中旗",
+          "科尔沁左翼后旗",
+          "开鲁县",
+          "库伦旗",
+          "奈曼旗",
+          "扎鲁特旗",
+          "霍林郭勒市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "鄂尔多斯市",
+        "list": [
+          "东胜区",
+          "康巴什区",
+          "达拉特旗",
+          "准格尔旗",
+          "鄂托克前旗",
+          "鄂托克旗",
+          "杭锦旗",
+          "乌审旗",
+          "伊金霍洛旗",
+          "其它区"
+        ]
+      },
+      {
+        "name": "呼伦贝尔市",
+        "list": [
+          "海拉尔区",
+          "扎赉诺尔区",
+          "阿荣旗",
+          "莫力达瓦达斡尔族自治旗",
+          "鄂伦春自治旗",
+          "鄂温克族自治旗",
+          "陈巴尔虎旗",
+          "新巴尔虎左旗",
+          "新巴尔虎右旗",
+          "满洲里市",
+          "牙克石市",
+          "扎兰屯市",
+          "额尔古纳市",
+          "根河市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "巴彦淖尔市",
+        "list": [
+          "临河区",
+          "五原县",
+          "磴口县",
+          "乌拉特前旗",
+          "乌拉特中旗",
+          "乌拉特后旗",
+          "杭锦后旗",
+          "其它区"
+        ]
+      },
+      {
+        "name": "乌兰察布市",
+        "list": [
+          "集宁区",
+          "卓资县",
+          "化德县",
+          "商都县",
+          "兴和县",
+          "凉城县",
+          "察哈尔右翼前旗",
+          "察哈尔右翼中旗",
+          "察哈尔右翼后旗",
+          "四子王旗",
+          "丰镇市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "兴安盟",
+        "list": [
+          "乌兰浩特市",
+          "阿尔山市",
+          "科尔沁右翼前旗",
+          "科尔沁右翼中旗",
+          "扎赉特旗",
+          "突泉县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "锡林郭勒盟",
+        "list": [
+          "二连浩特市",
+          "锡林浩特市",
+          "阿巴嘎旗",
+          "苏尼特左旗",
+          "苏尼特右旗",
+          "东乌珠穆沁旗",
+          "西乌珠穆沁旗",
+          "太仆寺旗",
+          "镶黄旗",
+          "正镶白旗",
+          "正蓝旗",
+          "多伦县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阿拉善盟",
+        "list": [
+          "阿拉善左旗",
+          "阿拉善右旗",
+          "额济纳旗",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "辽宁省",
+    "list": [
+      {
+        "name": "沈阳市",
+        "list": [
+          "和平区",
+          "沈河区",
+          "大东区",
+          "皇姑区",
+          "铁西区",
+          "苏家屯区",
+          "浑南区",
+          "于洪区",
+          "辽中区",
+          "康平县",
+          "法库县",
+          "新民市",
+          "沈北新区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "大连市",
+        "list": [
+          "中山区",
+          "西岗区",
+          "沙河口区",
+          "甘井子区",
+          "旅顺口区",
+          "金州区",
+          "长海县",
+          "瓦房店市",
+          "普兰店区",
+          "庄河市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "鞍山市",
+        "list": [
+          "铁东区",
+          "铁西区",
+          "立山区",
+          "千山区",
+          "台安县",
+          "岫岩满族自治县",
+          "海城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "抚顺市",
+        "list": [
+          "新抚区",
+          "东洲区",
+          "望花区",
+          "顺城区",
+          "抚顺县",
+          "新宾满族自治县",
+          "清原满族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "本溪市",
+        "list": [
+          "平山区",
+          "溪湖区",
+          "明山区",
+          "南芬区",
+          "本溪满族自治县",
+          "桓仁满族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "丹东市",
+        "list": [
+          "元宝区",
+          "振兴区",
+          "振安区",
+          "宽甸满族自治县",
+          "东港市",
+          "凤城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "锦州市",
+        "list": [
+          "古塔区",
+          "凌河区",
+          "太和区",
+          "黑山县",
+          "义县",
+          "凌海市",
+          "北镇市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "营口市",
+        "list": [
+          "站前区",
+          "西市区",
+          "鲅鱼圈区",
+          "老边区",
+          "盖州市",
+          "大石桥市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阜新市",
+        "list": [
+          "海州区",
+          "新邱区",
+          "太平区",
+          "清河门区",
+          "细河区",
+          "阜新蒙古族自治县",
+          "彰武县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "辽阳市",
+        "list": [
+          "白塔区",
+          "文圣区",
+          "宏伟区",
+          "弓长岭区",
+          "太子河区",
+          "辽阳县",
+          "灯塔市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "盘锦市",
+        "list": [
+          "双台子区",
+          "兴隆台区",
+          "大洼区",
+          "盘山县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "铁岭市",
+        "list": [
+          "银州区",
+          "清河区",
+          "铁岭县",
+          "西丰县",
+          "昌图县",
+          "调兵山市",
+          "开原市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "朝阳市",
+        "list": [
+          "双塔区",
+          "龙城区",
+          "朝阳县",
+          "建平县",
+          "喀喇沁左翼蒙古族自治县",
+          "北票市",
+          "凌源市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "葫芦岛市",
+        "list": [
+          "连山区",
+          "龙港区",
+          "南票区",
+          "绥中县",
+          "建昌县",
+          "兴城市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "吉林省",
+    "list": [
+      {
+        "name": "长春市",
+        "list": [
+          "南关区",
+          "宽城区",
+          "朝阳区",
+          "二道区",
+          "绿园区",
+          "双阳区",
+          "农安县",
+          "九台区",
+          "榆树市",
+          "德惠市",
+          "经济技术开发区",
+          "汽车产业开发区",
+          "高新技术产业开发区",
+          "汽车经济贸易开发区",
+          "净月潭旅游经济开发区",
+          "长江路电脑科技商品经营开发区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "吉林市",
+        "list": [
+          "昌邑区",
+          "龙潭区",
+          "船营区",
+          "丰满区",
+          "永吉县",
+          "蛟河市",
+          "桦甸市",
+          "舒兰市",
+          "磐石市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "四平市",
+        "list": [
+          "铁西区",
+          "铁东区",
+          "梨树县",
+          "伊通满族自治县",
+          "公主岭市",
+          "双辽市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "辽源市",
+        "list": [
+          "龙山区",
+          "西安区",
+          "东丰县",
+          "东辽县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "通化市",
+        "list": [
+          "东昌区",
+          "二道江区",
+          "通化县",
+          "辉南县",
+          "柳河县",
+          "梅河口市",
+          "集安市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "白山市",
+        "list": [
+          "浑江区",
+          "抚松县",
+          "靖宇县",
+          "长白朝鲜族自治县",
+          "江源区",
+          "临江市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "松原市",
+        "list": [
+          "宁江区",
+          "前郭尔罗斯蒙古族自治县",
+          "长岭县",
+          "乾安县",
+          "扶余市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "白城市",
+        "list": [
+          "洮北区",
+          "镇赉县",
+          "通榆县",
+          "洮南市",
+          "大安市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "延边朝鲜族自治州",
+        "list": [
+          "延吉市",
+          "图们市",
+          "敦化市",
+          "珲春市",
+          "龙井市",
+          "和龙市",
+          "汪清县",
+          "安图县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "黑龙江省",
+    "list": [
+      {
+        "name": "哈尔滨市",
+        "list": [
+          "道里区",
+          "南岗区",
+          "道外区",
+          "香坊区",
+          "平房区",
+          "松北区",
+          "呼兰区",
+          "依兰县",
+          "方正县",
+          "宾县",
+          "巴彦县",
+          "木兰县",
+          "通河县",
+          "延寿县",
+          "阿城区",
+          "双城区",
+          "尚志市",
+          "五常市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "齐齐哈尔市",
+        "list": [
+          "龙沙区",
+          "建华区",
+          "铁锋区",
+          "昂昂溪区",
+          "富拉尔基区",
+          "碾子山区",
+          "梅里斯达斡尔族区",
+          "龙江县",
+          "依安县",
+          "泰来县",
+          "甘南县",
+          "富裕县",
+          "克山县",
+          "克东县",
+          "拜泉县",
+          "讷河市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "鸡西市",
+        "list": [
+          "鸡冠区",
+          "恒山区",
+          "滴道区",
+          "梨树区",
+          "城子河区",
+          "麻山区",
+          "鸡东县",
+          "虎林市",
+          "密山市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "鹤岗市",
+        "list": [
+          "向阳区",
+          "工农区",
+          "南山区",
+          "兴安区",
+          "东山区",
+          "兴山区",
+          "萝北县",
+          "绥滨县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "双鸭山市",
+        "list": [
+          "尖山区",
+          "岭东区",
+          "四方台区",
+          "宝山区",
+          "集贤县",
+          "友谊县",
+          "宝清县",
+          "饶河县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "大庆市",
+        "list": [
+          "萨尔图区",
+          "龙凤区",
+          "让胡路区",
+          "红岗区",
+          "大同区",
+          "肇州县",
+          "肇源县",
+          "林甸县",
+          "杜尔伯特蒙古族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "伊春市",
+        "list": [
+          "伊春区",
+          "南岔区",
+          "友好区",
+          "西林区",
+          "翠峦区",
+          "新青区",
+          "美溪区",
+          "金山屯区",
+          "五营区",
+          "乌马河区",
+          "汤旺河区",
+          "带岭区",
+          "乌伊岭区",
+          "红星区",
+          "上甘岭区",
+          "嘉荫县",
+          "铁力市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "佳木斯市",
+        "list": [
+          "向阳区",
+          "前进区",
+          "东风区",
+          "郊区",
+          "桦南县",
+          "桦川县",
+          "汤原县",
+          "抚远市",
+          "同江市",
+          "富锦市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "七台河市",
+        "list": [
+          "新兴区",
+          "桃山区",
+          "茄子河区",
+          "勃利县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "牡丹江市",
+        "list": [
+          "东安区",
+          "阳明区",
+          "爱民区",
+          "西安区",
+          "东宁市",
+          "林口县",
+          "绥芬河市",
+          "海林市",
+          "宁安市",
+          "穆棱市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黑河市",
+        "list": [
+          "爱辉区",
+          "嫩江县",
+          "逊克县",
+          "孙吴县",
+          "北安市",
+          "五大连池市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "绥化市",
+        "list": [
+          "北林区",
+          "望奎县",
+          "兰西县",
+          "青冈县",
+          "庆安县",
+          "明水县",
+          "绥棱县",
+          "安达市",
+          "肇东市",
+          "海伦市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "大兴安岭地区",
+        "list": [
+          "呼玛县",
+          "塔河县",
+          "漠河县",
+          "加格达奇区",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "上海市",
+    "list": [
+      {
+        "name": "上海市",
+        "list": [
+          "黄浦区",
+          "徐汇区",
+          "长宁区",
+          "静安区",
+          "普陀区",
+          "虹口区",
+          "杨浦区",
+          "闵行区",
+          "宝山区",
+          "嘉定区",
+          "浦东新区",
+          "金山区",
+          "松江区",
+          "青浦区",
+          "奉贤区",
+          "崇明区",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "江苏省",
+    "list": [
+      {
+        "name": "南京市",
+        "list": [
+          "玄武区",
+          "秦淮区",
+          "建邺区",
+          "鼓楼区",
+          "浦口区",
+          "栖霞区",
+          "雨花台区",
+          "江宁区",
+          "六合区",
+          "溧水区",
+          "高淳区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "无锡市",
+        "list": [
+          "锡山区",
+          "惠山区",
+          "滨湖区",
+          "梁溪区",
+          "新吴区",
+          "江阴市",
+          "宜兴市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "徐州市",
+        "list": [
+          "鼓楼区",
+          "云龙区",
+          "贾汪区",
+          "泉山区",
+          "丰县",
+          "沛县",
+          "铜山区",
+          "睢宁县",
+          "新沂市",
+          "邳州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "常州市",
+        "list": [
+          "天宁区",
+          "钟楼区",
+          "新北区",
+          "武进区",
+          "溧阳市",
+          "金坛区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "苏州市",
+        "list": [
+          "虎丘区",
+          "吴中区",
+          "相城区",
+          "姑苏区",
+          "常熟市",
+          "张家港市",
+          "昆山市",
+          "吴江区",
+          "太仓市",
+          "苏州工业园区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "南通市",
+        "list": [
+          "崇川区",
+          "港闸区",
+          "通州区",
+          "海安县",
+          "如东县",
+          "启东市",
+          "如皋市",
+          "海门市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "连云港市",
+        "list": [
+          "连云区",
+          "海州区",
+          "赣榆区",
+          "东海县",
+          "灌云县",
+          "灌南县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "淮安市",
+        "list": [
+          "清江浦区",
+          "淮安区",
+          "淮阴区",
+          "涟水县",
+          "洪泽区",
+          "盱眙县",
+          "金湖县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "盐城市",
+        "list": [
+          "亭湖区",
+          "盐都区",
+          "响水县",
+          "滨海县",
+          "阜宁县",
+          "射阳县",
+          "建湖县",
+          "东台市",
+          "大丰区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "扬州市",
+        "list": [
+          "广陵区",
+          "邗江区",
+          "宝应县",
+          "仪征市",
+          "高邮市",
+          "江都区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "镇江市",
+        "list": [
+          "京口区",
+          "润州区",
+          "丹徒区",
+          "丹阳市",
+          "扬中市",
+          "句容市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "泰州市",
+        "list": [
+          "海陵区",
+          "高港区",
+          "兴化市",
+          "靖江市",
+          "泰兴市",
+          "姜堰区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宿迁市",
+        "list": [
+          "宿城区",
+          "宿豫区",
+          "沭阳县",
+          "泗阳县",
+          "泗洪县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "浙江省",
+    "list": [
+      {
+        "name": "杭州市",
+        "list": [
+          "上城区",
+          "下城区",
+          "江干区",
+          "拱墅区",
+          "西湖区",
+          "滨江区",
+          "萧山区",
+          "余杭区",
+          "桐庐县",
+          "淳安县",
+          "建德市",
+          "富阳区",
+          "临安区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宁波市",
+        "list": [
+          "海曙区",
+          "江北区",
+          "北仑区",
+          "镇海区",
+          "鄞州区",
+          "象山县",
+          "宁海县",
+          "余姚市",
+          "慈溪市",
+          "奉化区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "温州市",
+        "list": [
+          "鹿城区",
+          "龙湾区",
+          "瓯海区",
+          "洞头区",
+          "永嘉县",
+          "平阳县",
+          "苍南县",
+          "文成县",
+          "泰顺县",
+          "瑞安市",
+          "乐清市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "嘉兴市",
+        "list": [
+          "南湖区",
+          "秀洲区",
+          "嘉善县",
+          "海盐县",
+          "海宁市",
+          "平湖市",
+          "桐乡市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "湖州市",
+        "list": [
+          "吴兴区",
+          "南浔区",
+          "德清县",
+          "长兴县",
+          "安吉县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "绍兴市",
+        "list": [
+          "越城区",
+          "柯桥区",
+          "新昌县",
+          "诸暨市",
+          "上虞区",
+          "嵊州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "金华市",
+        "list": [
+          "婺城区",
+          "金东区",
+          "武义县",
+          "浦江县",
+          "磐安县",
+          "兰溪市",
+          "义乌市",
+          "东阳市",
+          "永康市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "衢州市",
+        "list": [
+          "柯城区",
+          "衢江区",
+          "常山县",
+          "开化县",
+          "龙游县",
+          "江山市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "舟山市",
+        "list": [
+          "定海区",
+          "普陀区",
+          "岱山县",
+          "嵊泗县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "台州市",
+        "list": [
+          "椒江区",
+          "黄岩区",
+          "路桥区",
+          "玉环市",
+          "三门县",
+          "天台县",
+          "仙居县",
+          "温岭市",
+          "临海市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "丽水市",
+        "list": [
+          "莲都区",
+          "青田县",
+          "缙云县",
+          "遂昌县",
+          "松阳县",
+          "云和县",
+          "庆元县",
+          "景宁畲族自治县",
+          "龙泉市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "安徽省",
+    "list": [
+      {
+        "name": "合肥市",
+        "list": [
+          "瑶海区",
+          "庐阳区",
+          "蜀山区",
+          "包河区",
+          "长丰县",
+          "肥东县",
+          "肥西县",
+          "其它区",
+          "巢湖市",
+          "庐江县"
+        ]
+      },
+      {
+        "name": "芜湖市",
+        "list": [
+          "镜湖区",
+          "弋江区",
+          "鸠江区",
+          "三山区",
+          "芜湖县",
+          "繁昌县",
+          "南陵县",
+          "其它区",
+          "无为县"
+        ]
+      },
+      {
+        "name": "蚌埠市",
+        "list": [
+          "龙子湖区",
+          "蚌山区",
+          "禹会区",
+          "淮上区",
+          "怀远县",
+          "五河县",
+          "固镇县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "淮南市",
+        "list": [
+          "大通区",
+          "田家庵区",
+          "谢家集区",
+          "八公山区",
+          "潘集区",
+          "凤台县",
+          "其它区",
+          "寿县"
+        ]
+      },
+      {
+        "name": "马鞍山市",
+        "list": [
+          "花山区",
+          "雨山区",
+          "博望区",
+          "当涂县",
+          "其它区",
+          "含山县",
+          "和县"
+        ]
+      },
+      {
+        "name": "淮北市",
+        "list": [
+          "杜集区",
+          "相山区",
+          "烈山区",
+          "濉溪县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "铜陵市",
+        "list": [
+          "铜官区",
+          "郊区",
+          "义安区",
+          "其它区",
+          "枞阳县"
+        ]
+      },
+      {
+        "name": "安庆市",
+        "list": [
+          "迎江区",
+          "大观区",
+          "宜秀区",
+          "怀宁县",
+          "潜山县",
+          "太湖县",
+          "宿松县",
+          "望江县",
+          "岳西县",
+          "桐城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黄山市",
+        "list": [
+          "屯溪区",
+          "黄山区",
+          "徽州区",
+          "歙县",
+          "休宁县",
+          "黟县",
+          "祁门县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "滁州市",
+        "list": [
+          "琅琊区",
+          "南谯区",
+          "来安县",
+          "全椒县",
+          "定远县",
+          "凤阳县",
+          "天长市",
+          "明光市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阜阳市",
+        "list": [
+          "颍州区",
+          "颍东区",
+          "颍泉区",
+          "临泉县",
+          "太和县",
+          "阜南县",
+          "颍上县",
+          "界首市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宿州市",
+        "list": [
+          "埇桥区",
+          "砀山县",
+          "萧县",
+          "灵璧县",
+          "泗县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "六安市",
+        "list": [
+          "金安区",
+          "裕安区",
+          "叶集区",
+          "霍邱县",
+          "舒城县",
+          "金寨县",
+          "霍山县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "亳州市",
+        "list": [
+          "谯城区",
+          "涡阳县",
+          "蒙城县",
+          "利辛县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "池州市",
+        "list": [
+          "贵池区",
+          "东至县",
+          "石台县",
+          "青阳县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宣城市",
+        "list": [
+          "宣州区",
+          "郎溪县",
+          "广德县",
+          "泾县",
+          "绩溪县",
+          "旌德县",
+          "宁国市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "福建省",
+    "list": [
+      {
+        "name": "福州市",
+        "list": [
+          "鼓楼区",
+          "台江区",
+          "仓山区",
+          "马尾区",
+          "晋安区",
+          "闽侯县",
+          "连江县",
+          "罗源县",
+          "闽清县",
+          "永泰县",
+          "平潭县",
+          "福清市",
+          "长乐区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "厦门市",
+        "list": [
+          "思明区",
+          "海沧区",
+          "湖里区",
+          "集美区",
+          "同安区",
+          "翔安区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "莆田市",
+        "list": [
+          "城厢区",
+          "涵江区",
+          "荔城区",
+          "秀屿区",
+          "仙游县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "三明市",
+        "list": [
+          "梅列区",
+          "三元区",
+          "明溪县",
+          "清流县",
+          "宁化县",
+          "大田县",
+          "尤溪县",
+          "沙县",
+          "将乐县",
+          "泰宁县",
+          "建宁县",
+          "永安市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "泉州市",
+        "list": [
+          "鲤城区",
+          "丰泽区",
+          "洛江区",
+          "泉港区",
+          "惠安县",
+          "安溪县",
+          "永春县",
+          "德化县",
+          "金门县",
+          "石狮市",
+          "晋江市",
+          "南安市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "漳州市",
+        "list": [
+          "芗城区",
+          "龙文区",
+          "云霄县",
+          "漳浦县",
+          "诏安县",
+          "长泰县",
+          "东山县",
+          "南靖县",
+          "平和县",
+          "华安县",
+          "龙海市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "南平市",
+        "list": [
+          "延平区",
+          "顺昌县",
+          "浦城县",
+          "光泽县",
+          "松溪县",
+          "政和县",
+          "邵武市",
+          "武夷山市",
+          "建瓯市",
+          "建阳区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "龙岩市",
+        "list": [
+          "新罗区",
+          "长汀县",
+          "永定区",
+          "上杭县",
+          "武平县",
+          "连城县",
+          "漳平市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宁德市",
+        "list": [
+          "蕉城区",
+          "霞浦县",
+          "古田县",
+          "屏南县",
+          "寿宁县",
+          "周宁县",
+          "柘荣县",
+          "福安市",
+          "福鼎市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "江西省",
+    "list": [
+      {
+        "name": "南昌市",
+        "list": [
+          "东湖区",
+          "西湖区",
+          "青云谱区",
+          "湾里区",
+          "青山湖区",
+          "南昌县",
+          "新建区",
+          "安义县",
+          "进贤县",
+          "昌北经济开发区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "景德镇市",
+        "list": [
+          "昌江区",
+          "珠山区",
+          "浮梁县",
+          "乐平市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "萍乡市",
+        "list": [
+          "安源区",
+          "湘东区",
+          "莲花县",
+          "上栗县",
+          "芦溪县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "九江市",
+        "list": [
+          "濂溪区",
+          "浔阳区",
+          "柴桑区",
+          "武宁县",
+          "修水县",
+          "永修县",
+          "德安县",
+          "庐山市",
+          "都昌县",
+          "湖口县",
+          "彭泽县",
+          "瑞昌市",
+          "其它区",
+          "共青城市"
+        ]
+      },
+      {
+        "name": "新余市",
+        "list": [
+          "渝水区",
+          "分宜县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "鹰潭市",
+        "list": [
+          "月湖区",
+          "余江县",
+          "贵溪市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "赣州市",
+        "list": [
+          "章贡区",
+          "赣县区",
+          "信丰县",
+          "大余县",
+          "上犹县",
+          "崇义县",
+          "安远县",
+          "龙南县",
+          "定南县",
+          "全南县",
+          "宁都县",
+          "于都县",
+          "兴国县",
+          "会昌县",
+          "寻乌县",
+          "石城县",
+          "瑞金市",
+          "南康区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "吉安市",
+        "list": [
+          "吉州区",
+          "青原区",
+          "吉安县",
+          "吉水县",
+          "峡江县",
+          "新干县",
+          "永丰县",
+          "泰和县",
+          "遂川县",
+          "万安县",
+          "安福县",
+          "永新县",
+          "井冈山市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宜春市",
+        "list": [
+          "袁州区",
+          "奉新县",
+          "万载县",
+          "上高县",
+          "宜丰县",
+          "靖安县",
+          "铜鼓县",
+          "丰城市",
+          "樟树市",
+          "高安市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "抚州市",
+        "list": [
+          "临川区",
+          "南城县",
+          "黎川县",
+          "南丰县",
+          "崇仁县",
+          "乐安县",
+          "宜黄县",
+          "金溪县",
+          "资溪县",
+          "东乡区",
+          "广昌县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "上饶市",
+        "list": [
+          "信州区",
+          "广信区",
+          "广丰区",
+          "玉山县",
+          "铅山县",
+          "横峰县",
+          "弋阳县",
+          "余干县",
+          "鄱阳县",
+          "万年县",
+          "婺源县",
+          "德兴市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "山东省",
+    "list": [
+      {
+        "name": "济南市",
+        "list": [
+          "历下区",
+          "市中区",
+          "槐荫区",
+          "天桥区",
+          "历城区",
+          "长清区",
+          "平阴县",
+          "济阳县",
+          "商河县",
+          "章丘区",
+          "高薪区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "青岛市",
+        "list": [
+          "市南区",
+          "市北区",
+          "黄岛区",
+          "崂山区",
+          "李沧区",
+          "城阳区",
+          "胶州市",
+          "即墨区",
+          "平度市",
+          "莱西市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "淄博市",
+        "list": [
+          "淄川区",
+          "张店区",
+          "博山区",
+          "临淄区",
+          "周村区",
+          "桓台县",
+          "高青县",
+          "沂源县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "枣庄市",
+        "list": [
+          "市中区",
+          "薛城区",
+          "峄城区",
+          "台儿庄区",
+          "山亭区",
+          "滕州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "东营市",
+        "list": [
+          "东营区",
+          "河口区",
+          "垦利区",
+          "利津县",
+          "广饶县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "烟台市",
+        "list": [
+          "芝罘区",
+          "福山区",
+          "牟平区",
+          "莱山区",
+          "长岛县",
+          "龙口市",
+          "莱阳市",
+          "莱州市",
+          "蓬莱市",
+          "招远市",
+          "栖霞市",
+          "海阳市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "潍坊市",
+        "list": [
+          "潍城区",
+          "寒亭区",
+          "坊子区",
+          "奎文区",
+          "临朐县",
+          "昌乐县",
+          "青州市",
+          "诸城市",
+          "寿光市",
+          "安丘市",
+          "高密市",
+          "昌邑市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "济宁市",
+        "list": [
+          "任城区",
+          "微山县",
+          "鱼台县",
+          "金乡县",
+          "嘉祥县",
+          "汶上县",
+          "泗水县",
+          "梁山县",
+          "曲阜市",
+          "兖州区",
+          "邹城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "泰安市",
+        "list": [
+          "泰山区",
+          "岱岳区",
+          "宁阳县",
+          "东平县",
+          "新泰市",
+          "肥城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "威海市",
+        "list": [
+          "环翠区",
+          "文登区",
+          "荣成市",
+          "乳山市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "日照市",
+        "list": [
+          "东港区",
+          "岚山区",
+          "五莲县",
+          "莒县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "莱芜市",
+        "list": [
+          "莱城区",
+          "钢城区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "临沂市",
+        "list": [
+          "兰山区",
+          "罗庄区",
+          "河东区",
+          "沂南县",
+          "郯城县",
+          "沂水县",
+          "兰陵县",
+          "费县",
+          "平邑县",
+          "莒南县",
+          "蒙阴县",
+          "临沭县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "德州市",
+        "list": [
+          "德城区",
+          "陵城区",
+          "宁津县",
+          "庆云县",
+          "临邑县",
+          "齐河县",
+          "平原县",
+          "夏津县",
+          "武城县",
+          "乐陵市",
+          "禹城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "聊城市",
+        "list": [
+          "东昌府区",
+          "阳谷县",
+          "莘县",
+          "茌平县",
+          "东阿县",
+          "冠县",
+          "高唐县",
+          "临清市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "滨州市",
+        "list": [
+          "滨城区",
+          "惠民县",
+          "阳信县",
+          "无棣县",
+          "沾化区",
+          "博兴县",
+          "邹平县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "菏泽市",
+        "list": [
+          "牡丹区",
+          "曹县",
+          "单县",
+          "成武县",
+          "巨野县",
+          "郓城县",
+          "鄄城县",
+          "定陶区",
+          "东明县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "河南省",
+    "list": [
+      {
+        "name": "郑州市",
+        "list": [
+          "中原区",
+          "二七区",
+          "管城回族区",
+          "金水区",
+          "上街区",
+          "惠济区",
+          "中牟县",
+          "巩义市",
+          "荥阳市",
+          "新密市",
+          "新郑市",
+          "登封市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "开封市",
+        "list": [
+          "龙亭区",
+          "顺河回族区",
+          "鼓楼区",
+          "禹王台区",
+          "杞县",
+          "通许县",
+          "尉氏县",
+          "祥符区",
+          "兰考县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "洛阳市",
+        "list": [
+          "老城区",
+          "西工区",
+          "瀍河回族区",
+          "涧西区",
+          "吉利区",
+          "洛龙区",
+          "孟津县",
+          "新安县",
+          "栾川县",
+          "嵩县",
+          "汝阳县",
+          "宜阳县",
+          "洛宁县",
+          "伊川县",
+          "偃师市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "平顶山市",
+        "list": [
+          "新华区",
+          "卫东区",
+          "石龙区",
+          "湛河区",
+          "宝丰县",
+          "叶县",
+          "鲁山县",
+          "郏县",
+          "舞钢市",
+          "汝州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "安阳市",
+        "list": [
+          "文峰区",
+          "北关区",
+          "殷都区",
+          "龙安区",
+          "安阳县",
+          "汤阴县",
+          "滑县",
+          "内黄县",
+          "林州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "鹤壁市",
+        "list": [
+          "鹤山区",
+          "山城区",
+          "淇滨区",
+          "浚县",
+          "淇县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "新乡市",
+        "list": [
+          "红旗区",
+          "卫滨区",
+          "凤泉区",
+          "牧野区",
+          "新乡县",
+          "获嘉县",
+          "原阳县",
+          "延津县",
+          "封丘县",
+          "长垣县",
+          "卫辉市",
+          "辉县市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "焦作市",
+        "list": [
+          "解放区",
+          "中站区",
+          "马村区",
+          "山阳区",
+          "修武县",
+          "博爱县",
+          "武陟县",
+          "温县",
+          "沁阳市",
+          "孟州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "濮阳市",
+        "list": [
+          "华龙区",
+          "清丰县",
+          "南乐县",
+          "范县",
+          "台前县",
+          "濮阳县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "许昌市",
+        "list": [
+          "魏都区",
+          "建安区",
+          "鄢陵县",
+          "襄城县",
+          "禹州市",
+          "长葛市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "漯河市",
+        "list": [
+          "源汇区",
+          "郾城区",
+          "召陵区",
+          "舞阳县",
+          "临颍县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "三门峡市",
+        "list": [
+          "湖滨区",
+          "渑池县",
+          "陕州区",
+          "卢氏县",
+          "义马市",
+          "灵宝市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "南阳市",
+        "list": [
+          "宛城区",
+          "卧龙区",
+          "南召县",
+          "方城县",
+          "西峡县",
+          "镇平县",
+          "内乡县",
+          "淅川县",
+          "社旗县",
+          "唐河县",
+          "新野县",
+          "桐柏县",
+          "邓州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "商丘市",
+        "list": [
+          "梁园区",
+          "睢阳区",
+          "民权县",
+          "睢县",
+          "宁陵县",
+          "柘城县",
+          "虞城县",
+          "夏邑县",
+          "永城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "信阳市",
+        "list": [
+          "浉河区",
+          "平桥区",
+          "罗山县",
+          "光山县",
+          "新县",
+          "商城县",
+          "固始县",
+          "潢川县",
+          "淮滨县",
+          "息县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "周口市",
+        "list": [
+          "川汇区",
+          "扶沟县",
+          "西华县",
+          "商水县",
+          "沈丘县",
+          "郸城县",
+          "淮阳县",
+          "太康县",
+          "鹿邑县",
+          "项城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "驻马店市",
+        "list": [
+          "驿城区",
+          "西平县",
+          "上蔡县",
+          "平舆县",
+          "正阳县",
+          "确山县",
+          "泌阳县",
+          "汝南县",
+          "遂平县",
+          "新蔡县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "济源市",
+        "list": [
+          "沁园街道",
+          "济水街道",
+          "北海街道",
+          "天坛街道",
+          "玉泉街道",
+          "克井镇",
+          "五龙口镇",
+          "轵城镇",
+          "承留镇",
+          "邵原镇",
+          "坡头镇",
+          "梨林镇",
+          "大峪镇",
+          "思礼镇",
+          "王屋镇",
+          "下冶镇"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "湖北省",
+    "list": [
+      {
+        "name": "武汉市",
+        "list": [
+          "江岸区",
+          "江汉区",
+          "硚口区",
+          "汉阳区",
+          "武昌区",
+          "青山区",
+          "洪山区",
+          "东西湖区",
+          "汉南区",
+          "蔡甸区",
+          "江夏区",
+          "黄陂区",
+          "新洲区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黄石市",
+        "list": [
+          "黄石港区",
+          "西塞山区",
+          "下陆区",
+          "铁山区",
+          "阳新县",
+          "大冶市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "十堰市",
+        "list": [
+          "茅箭区",
+          "张湾区",
+          "郧阳区",
+          "郧西县",
+          "竹山县",
+          "竹溪县",
+          "房县",
+          "丹江口市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宜昌市",
+        "list": [
+          "西陵区",
+          "伍家岗区",
+          "点军区",
+          "猇亭区",
+          "夷陵区",
+          "远安县",
+          "兴山县",
+          "秭归县",
+          "长阳土家族自治县",
+          "五峰土家族自治县",
+          "宜都市",
+          "当阳市",
+          "枝江市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "襄阳市",
+        "list": [
+          "襄城区",
+          "樊城区",
+          "襄州区",
+          "南漳县",
+          "谷城县",
+          "保康县",
+          "老河口市",
+          "枣阳市",
+          "宜城市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "鄂州市",
+        "list": [
+          "梁子湖区",
+          "华容区",
+          "鄂城区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "荆门市",
+        "list": [
+          "东宝区",
+          "掇刀区",
+          "京山县",
+          "沙洋县",
+          "钟祥市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "孝感市",
+        "list": [
+          "孝南区",
+          "孝昌县",
+          "大悟县",
+          "云梦县",
+          "应城市",
+          "安陆市",
+          "汉川市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "荆州市",
+        "list": [
+          "沙市区",
+          "荆州区",
+          "公安县",
+          "监利县",
+          "江陵县",
+          "石首市",
+          "洪湖市",
+          "松滋市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黄冈市",
+        "list": [
+          "黄州区",
+          "团风县",
+          "红安县",
+          "罗田县",
+          "英山县",
+          "浠水县",
+          "蕲春县",
+          "黄梅县",
+          "麻城市",
+          "武穴市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "咸宁市",
+        "list": [
+          "咸安区",
+          "嘉鱼县",
+          "通城县",
+          "崇阳县",
+          "通山县",
+          "赤壁市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "随州市",
+        "list": [
+          "曾都区",
+          "随县",
+          "广水市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "恩施土家族苗族自治州",
+        "list": [
+          "恩施市",
+          "利川市",
+          "建始县",
+          "巴东县",
+          "宣恩县",
+          "咸丰县",
+          "来凤县",
+          "鹤峰县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "仙桃市",
+        "list": [
+          "沙嘴街道",
+          "干河街道",
+          "龙华山街道",
+          "郑场镇",
+          "毛嘴镇",
+          "豆河镇",
+          "三伏潭镇",
+          "胡场镇",
+          "长倘口镇",
+          "西流河镇",
+          "沙湖镇",
+          "杨林尾镇",
+          "彭场镇",
+          "张沟镇",
+          "郭河镇",
+          "沔城回族镇",
+          "通海口镇",
+          "陈场镇",
+          "工业园区",
+          "九合垸原种场",
+          "沙湖原种场",
+          "五湖渔场",
+          "赵西垸林场",
+          "畜禽良种场",
+          "排湖风景区"
+        ]
+      },
+      {
+        "name": "潜江市",
+        "list": [
+          "园林街道",
+          "杨市街道",
+          "周矶街道",
+          "广华街道",
+          "泰丰街道",
+          "高场街道",
+          "竹根滩镇",
+          "渔洋镇",
+          "王场镇",
+          "高石碑镇",
+          "熊口镇",
+          "老新镇",
+          "浩口镇",
+          "积玉口镇",
+          "张金镇",
+          "龙湾镇",
+          "江汉石油管理局",
+          "潜江经济开发区",
+          "周矶管理区",
+          "后湖管理区",
+          "熊口管理区",
+          "总口管理区",
+          "白鹭湖管理区",
+          "运粮湖管理区",
+          "浩口原种场"
+        ]
+      },
+      {
+        "name": "天门市",
+        "list": [
+          "竟陵街道",
+          "侨乡街道开发区",
+          "杨林街道",
+          "多宝镇",
+          "拖市镇",
+          "张港镇",
+          "蒋场镇",
+          "汪场镇",
+          "渔薪镇",
+          "黄潭镇",
+          "岳口镇",
+          "横林镇",
+          "彭市镇",
+          "麻洋镇",
+          "多祥镇",
+          "干驿镇",
+          "马湾镇",
+          "卢市镇",
+          "小板镇",
+          "九真镇",
+          "皂市镇",
+          "胡市镇",
+          "石河镇",
+          "佛子山镇",
+          "净潭乡",
+          "蒋湖农场",
+          "白茅湖农场",
+          "沉湖管委会"
+        ]
+      },
+      {
+        "name": "神农架林区",
+        "list": [
+          "松柏镇",
+          "阳日镇",
+          "木鱼镇",
+          "红坪镇",
+          "新华镇",
+          "九湖镇",
+          "宋洛乡",
+          "下谷坪土家族乡"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "湖南省",
+    "list": [
+      {
+        "name": "长沙市",
+        "list": [
+          "芙蓉区",
+          "天心区",
+          "岳麓区",
+          "开福区",
+          "雨花区",
+          "长沙县",
+          "望城区",
+          "宁乡市",
+          "浏阳市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "株洲市",
+        "list": [
+          "荷塘区",
+          "芦淞区",
+          "石峰区",
+          "天元区",
+          "株洲县",
+          "攸县",
+          "茶陵县",
+          "炎陵县",
+          "醴陵市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "湘潭市",
+        "list": [
+          "雨湖区",
+          "岳塘区",
+          "湘潭县",
+          "湘乡市",
+          "韶山市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "衡阳市",
+        "list": [
+          "珠晖区",
+          "雁峰区",
+          "石鼓区",
+          "蒸湘区",
+          "南岳区",
+          "衡阳县",
+          "衡南县",
+          "衡山县",
+          "衡东县",
+          "祁东县",
+          "耒阳市",
+          "常宁市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "邵阳市",
+        "list": [
+          "双清区",
+          "大祥区",
+          "北塔区",
+          "邵东县",
+          "新邵县",
+          "邵阳县",
+          "隆回县",
+          "洞口县",
+          "绥宁县",
+          "新宁县",
+          "城步苗族自治县",
+          "武冈市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "岳阳市",
+        "list": [
+          "岳阳楼区",
+          "云溪区",
+          "君山区",
+          "岳阳县",
+          "华容县",
+          "湘阴县",
+          "平江县",
+          "汨罗市",
+          "临湘市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "常德市",
+        "list": [
+          "武陵区",
+          "鼎城区",
+          "安乡县",
+          "汉寿县",
+          "澧县",
+          "临澧县",
+          "桃源县",
+          "石门县",
+          "津市市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "张家界市",
+        "list": [
+          "永定区",
+          "武陵源区",
+          "慈利县",
+          "桑植县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "益阳市",
+        "list": [
+          "资阳区",
+          "赫山区",
+          "南县",
+          "桃江县",
+          "安化县",
+          "沅江市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "郴州市",
+        "list": [
+          "北湖区",
+          "苏仙区",
+          "桂阳县",
+          "宜章县",
+          "永兴县",
+          "嘉禾县",
+          "临武县",
+          "汝城县",
+          "桂东县",
+          "安仁县",
+          "资兴市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "永州市",
+        "list": [
+          "零陵区",
+          "冷水滩区",
+          "祁阳县",
+          "东安县",
+          "双牌县",
+          "道县",
+          "江永县",
+          "宁远县",
+          "蓝山县",
+          "新田县",
+          "江华瑶族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "怀化市",
+        "list": [
+          "鹤城区",
+          "中方县",
+          "沅陵县",
+          "辰溪县",
+          "溆浦县",
+          "会同县",
+          "麻阳苗族自治县",
+          "新晃侗族自治县",
+          "芷江侗族自治县",
+          "靖州苗族侗族自治县",
+          "通道侗族自治县",
+          "洪江市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "娄底市",
+        "list": [
+          "娄星区",
+          "双峰县",
+          "新化县",
+          "冷水江市",
+          "涟源市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "湘西土家族苗族自治州",
+        "list": [
+          "吉首市",
+          "泸溪县",
+          "凤凰县",
+          "花垣县",
+          "保靖县",
+          "古丈县",
+          "永顺县",
+          "龙山县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "广东省",
+    "list": [
+      {
+        "name": "广州市",
+        "list": [
+          "荔湾区",
+          "越秀区",
+          "海珠区",
+          "天河区",
+          "白云区",
+          "黄埔区",
+          "番禺区",
+          "花都区",
+          "南沙区",
+          "增城区",
+          "从化区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "韶关市",
+        "list": [
+          "武江区",
+          "浈江区",
+          "曲江区",
+          "始兴县",
+          "仁化县",
+          "翁源县",
+          "乳源瑶族自治县",
+          "新丰县",
+          "乐昌市",
+          "南雄市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "深圳市",
+        "list": [
+          "罗湖区",
+          "福田区",
+          "南山区",
+          "宝安区",
+          "龙岗区",
+          "盐田区",
+          "其它区",
+          "坪山区",
+          "龙华区"
+        ]
+      },
+      {
+        "name": "珠海市",
+        "list": [
+          "香洲区",
+          "斗门区",
+          "金湾区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "汕头市",
+        "list": [
+          "龙湖区",
+          "金平区",
+          "濠江区",
+          "潮阳区",
+          "潮南区",
+          "澄海区",
+          "南澳县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "佛山市",
+        "list": [
+          "禅城区",
+          "南海区",
+          "顺德区",
+          "三水区",
+          "高明区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "江门市",
+        "list": [
+          "蓬江区",
+          "江海区",
+          "新会区",
+          "台山市",
+          "开平市",
+          "鹤山市",
+          "恩平市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "湛江市",
+        "list": [
+          "赤坎区",
+          "霞山区",
+          "坡头区",
+          "麻章区",
+          "遂溪县",
+          "徐闻县",
+          "廉江市",
+          "雷州市",
+          "吴川市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "茂名市",
+        "list": [
+          "茂南区",
+          "电白区",
+          "高州市",
+          "化州市",
+          "信宜市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "肇庆市",
+        "list": [
+          "端州区",
+          "鼎湖区",
+          "广宁县",
+          "怀集县",
+          "封开县",
+          "德庆县",
+          "高要区",
+          "四会市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "惠州市",
+        "list": [
+          "惠城区",
+          "惠阳区",
+          "博罗县",
+          "惠东县",
+          "龙门县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "梅州市",
+        "list": [
+          "梅江区",
+          "梅县区",
+          "大埔县",
+          "丰顺县",
+          "五华县",
+          "平远县",
+          "蕉岭县",
+          "兴宁市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "汕尾市",
+        "list": [
+          "城区",
+          "海丰县",
+          "陆河县",
+          "陆丰市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "河源市",
+        "list": [
+          "源城区",
+          "紫金县",
+          "龙川县",
+          "连平县",
+          "和平县",
+          "东源县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阳江市",
+        "list": [
+          "江城区",
+          "阳西县",
+          "阳东区",
+          "阳春市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "清远市",
+        "list": [
+          "清城区",
+          "佛冈县",
+          "阳山县",
+          "连山壮族瑶族自治县",
+          "连南瑶族自治县",
+          "清新区",
+          "英德市",
+          "连州市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "东莞市",
+        "list": [
+          "东城街道",
+          "南城街道",
+          "万江街道",
+          "莞城街道",
+          "石碣镇",
+          "石龙镇",
+          "茶山镇",
+          "石排镇",
+          "企石镇",
+          "横沥镇",
+          "桥头镇",
+          "谢岗镇",
+          "东坑镇",
+          "常平镇",
+          "寮步镇",
+          "樟木头镇",
+          "大朗镇",
+          "黄江镇",
+          "清溪镇",
+          "塘厦镇",
+          "凤岗镇",
+          "大岭山镇",
+          "长安镇",
+          "虎门镇",
+          "厚街镇",
+          "沙田镇",
+          "道滘镇",
+          "洪梅镇",
+          "麻涌镇",
+          "望牛墩镇",
+          "中堂镇",
+          "高埗镇",
+          "松山湖管委会",
+          "虎门港管委会",
+          "东莞生态园"
+        ]
+      },
+      {
+        "name": "中山市",
+        "list": [
+          "石岐区街道",
+          "东区街道",
+          "火炬开发区街道",
+          "西区街道",
+          "南区街道",
+          "五桂山街道",
+          "小榄镇",
+          "黄圃镇",
+          "民众镇",
+          "东凤镇",
+          "东升镇",
+          "古镇镇",
+          "沙溪镇",
+          "坦洲镇",
+          "港口镇",
+          "三角镇",
+          "横栏镇",
+          "南头镇",
+          "阜沙镇",
+          "南朗镇",
+          "三乡镇",
+          "板芙镇",
+          "大涌镇",
+          "神湾镇"
+        ]
+      },
+      {
+        "name": "东沙群岛",
+        "list": [
+          "东沙群岛"
+        ]
+      },
+      {
+        "name": "潮州市",
+        "list": [
+          "湘桥区",
+          "潮安区",
+          "饶平县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "揭阳市",
+        "list": [
+          "榕城区",
+          "揭东区",
+          "揭西县",
+          "惠来县",
+          "普宁市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "云浮市",
+        "list": [
+          "云城区",
+          "新兴县",
+          "郁南县",
+          "云安区",
+          "罗定市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "广西壮族自治区",
+    "list": [
+      {
+        "name": "南宁市",
+        "list": [
+          "兴宁区",
+          "青秀区",
+          "江南区",
+          "西乡塘区",
+          "良庆区",
+          "邕宁区",
+          "武鸣区",
+          "隆安县",
+          "马山县",
+          "上林县",
+          "宾阳县",
+          "横县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "柳州市",
+        "list": [
+          "城中区",
+          "鱼峰区",
+          "柳南区",
+          "柳北区",
+          "柳江区",
+          "柳城县",
+          "鹿寨县",
+          "融安县",
+          "融水苗族自治县",
+          "三江侗族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "桂林市",
+        "list": [
+          "秀峰区",
+          "叠彩区",
+          "象山区",
+          "七星区",
+          "雁山区",
+          "阳朔县",
+          "临桂区",
+          "灵川县",
+          "全州县",
+          "兴安县",
+          "永福县",
+          "灌阳县",
+          "龙胜各族自治县",
+          "资源县",
+          "平乐县",
+          "荔浦县",
+          "恭城瑶族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "梧州市",
+        "list": [
+          "万秀区",
+          "长洲区",
+          "龙圩区",
+          "苍梧县",
+          "藤县",
+          "蒙山县",
+          "岑溪市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "北海市",
+        "list": [
+          "海城区",
+          "银海区",
+          "铁山港区",
+          "合浦县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "防城港市",
+        "list": [
+          "港口区",
+          "防城区",
+          "上思县",
+          "东兴市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "钦州市",
+        "list": [
+          "钦南区",
+          "钦北区",
+          "灵山县",
+          "浦北县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "贵港市",
+        "list": [
+          "港北区",
+          "港南区",
+          "覃塘区",
+          "平南县",
+          "桂平市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "玉林市",
+        "list": [
+          "玉州区",
+          "福绵区",
+          "容县",
+          "陆川县",
+          "博白县",
+          "兴业县",
+          "北流市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "百色市",
+        "list": [
+          "右江区",
+          "田阳县",
+          "田东县",
+          "平果县",
+          "德保县",
+          "靖西市",
+          "那坡县",
+          "凌云县",
+          "乐业县",
+          "田林县",
+          "西林县",
+          "隆林各族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "贺州市",
+        "list": [
+          "八步区",
+          "平桂区",
+          "昭平县",
+          "钟山县",
+          "富川瑶族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "河池市",
+        "list": [
+          "金城江区",
+          "南丹县",
+          "天峨县",
+          "凤山县",
+          "东兰县",
+          "罗城仫佬族自治县",
+          "环江毛南族自治县",
+          "巴马瑶族自治县",
+          "都安瑶族自治县",
+          "大化瑶族自治县",
+          "宜州区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "来宾市",
+        "list": [
+          "兴宾区",
+          "忻城县",
+          "象州县",
+          "武宣县",
+          "金秀瑶族自治县",
+          "合山市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "崇左市",
+        "list": [
+          "江州区",
+          "扶绥县",
+          "宁明县",
+          "龙州县",
+          "大新县",
+          "天等县",
+          "凭祥市",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "海南省",
+    "list": [
+      {
+        "name": "海口市",
+        "list": [
+          "秀英区",
+          "龙华区",
+          "琼山区",
+          "美兰区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "三亚市",
+        "list": [
+          "海棠区",
+          "吉阳区",
+          "天涯区",
+          "崖州区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "三沙市",
+        "list": [
+          "西沙群岛",
+          "南沙群岛",
+          "中沙群岛的岛礁及其海域"
+        ]
+      },
+      {
+        "name": "五指山市",
+        "list": [
+          "通什镇",
+          "南圣镇",
+          "毛阳镇",
+          "番阳镇",
+          "畅好乡",
+          "毛道乡",
+          "水满乡",
+          "国营畅好农场"
+        ]
+      },
+      {
+        "name": "琼海市",
+        "list": [
+          "嘉积镇",
+          "万泉镇",
+          "石壁镇",
+          "中原镇",
+          "博鳌镇",
+          "阳江镇",
+          "龙江镇",
+          "潭门镇",
+          "塔洋镇",
+          "长坡镇",
+          "大路镇",
+          "会山镇",
+          "国营东太农场",
+          "国营东红农场",
+          "国营东升农场",
+          "彬村山华侨农场"
+        ]
+      },
+      {
+        "name": "儋州市",
+        "list": [
+          "那大镇",
+          "和庆镇",
+          "南丰镇",
+          "大成镇",
+          "雅星镇",
+          "兰洋镇",
+          "光村镇",
+          "木棠镇",
+          "海头镇",
+          "峨蔓镇",
+          "三都镇",
+          "王五镇",
+          "白马井镇",
+          "中和镇",
+          "排浦镇",
+          "东成镇",
+          "新州镇",
+          "国营西培农场",
+          "国营西联农场",
+          "国营蓝洋农场",
+          "国营八一农场",
+          "洋浦经济开发区",
+          "华南热作学院"
+        ]
+      },
+      {
+        "name": "文昌市",
+        "list": [
+          "文城镇",
+          "重兴镇",
+          "蓬莱镇",
+          "会文镇",
+          "东路镇",
+          "潭牛镇",
+          "东阁镇",
+          "文教镇",
+          "东郊镇",
+          "龙楼镇",
+          "昌洒镇",
+          "翁田镇",
+          "抱罗镇",
+          "冯坡镇",
+          "锦山镇",
+          "铺前镇",
+          "公坡镇",
+          "国营东路农场",
+          "国营南阳农场",
+          "国营罗豆农场"
+        ]
+      },
+      {
+        "name": "万宁市",
+        "list": [
+          "万城镇",
+          "龙滚镇",
+          "和乐镇",
+          "后安镇",
+          "大茂镇",
+          "东澳镇",
+          "礼纪镇",
+          "长丰镇",
+          "山根镇",
+          "北大镇",
+          "南桥镇",
+          "三更罗镇",
+          "国营东兴农场",
+          "国营东和农场",
+          "国营新中农场",
+          "兴隆华侨农场",
+          "地方国营六连林场"
+        ]
+      },
+      {
+        "name": "东方市",
+        "list": [
+          "八所镇",
+          "东河镇",
+          "大田镇",
+          "感城镇",
+          "板桥镇",
+          "三家镇",
+          "四更镇",
+          "新龙镇",
+          "天安乡",
+          "江边乡",
+          "国营广坝农场",
+          "东方华侨农场"
+        ]
+      },
+      {
+        "name": "定安县",
+        "list": [
+          "定城镇",
+          "新竹镇",
+          "龙湖镇",
+          "黄竹镇",
+          "雷鸣镇",
+          "龙门镇",
+          "龙河镇",
+          "岭口镇",
+          "翰林镇",
+          "富文镇",
+          "国营中瑞农场",
+          "国营南海农场",
+          "国营金鸡岭农场"
+        ]
+      },
+      {
+        "name": "屯昌县",
+        "list": [
+          "屯城镇",
+          "新兴镇",
+          "枫木镇",
+          "乌坡镇",
+          "南吕镇",
+          "南坤镇",
+          "坡心镇",
+          "西昌镇",
+          "国营中建农场",
+          "国营中坤农场"
+        ]
+      },
+      {
+        "name": "澄迈县",
+        "list": [
+          "金江镇",
+          "老城镇",
+          "瑞溪镇",
+          "永发镇",
+          "加乐镇",
+          "文儒镇",
+          "中兴镇",
+          "仁兴镇",
+          "福山镇",
+          "桥头镇",
+          "大丰镇",
+          "国营红光农场",
+          "国营红岗农场",
+          "国营西达农场",
+          "国营昆仑农场",
+          "国营和岭农场",
+          "国营金安农场"
+        ]
+      },
+      {
+        "name": "临高县",
+        "list": [
+          "临城镇",
+          "波莲镇",
+          "东英镇",
+          "博厚镇",
+          "皇桐镇",
+          "多文镇",
+          "和舍镇",
+          "南宝镇",
+          "新盈镇",
+          "调楼镇",
+          "国营红华农场",
+          "国营加来农场"
+        ]
+      },
+      {
+        "name": "白沙黎族自治县",
+        "list": [
+          "牙叉镇",
+          "七坊镇",
+          "邦溪镇",
+          "打安镇",
+          "细水乡",
+          "元门乡",
+          "南开乡",
+          "阜龙乡",
+          "青松乡",
+          "金波乡",
+          "荣邦乡",
+          "国营白沙农场",
+          "国营龙江农场",
+          "国营邦溪农场"
+        ]
+      },
+      {
+        "name": "昌江黎族自治县",
+        "list": [
+          "石碌镇",
+          "叉河镇",
+          "十月田镇",
+          "乌烈镇",
+          "昌化镇",
+          "海尾镇",
+          "七叉镇",
+          "王下乡",
+          "国营红林农场",
+          "国营霸王岭林场",
+          "海南矿业联合有限公司"
+        ]
+      },
+      {
+        "name": "乐东黎族自治县",
+        "list": [
+          "抱由镇",
+          "万冲镇",
+          "大安镇",
+          "志仲镇",
+          "千家镇",
+          "九所镇",
+          "利国镇",
+          "黄流镇",
+          "佛罗镇",
+          "尖峰镇",
+          "莺歌海镇",
+          "国营山荣农场",
+          "国营乐光农场",
+          "国营保国农场",
+          "国营尖峰岭林业公司",
+          "国营莺歌海盐场"
+        ]
+      },
+      {
+        "name": "陵水黎族自治县",
+        "list": [
+          "椰林镇",
+          "光坡镇",
+          "三才镇",
+          "英州镇",
+          "隆广镇",
+          "文罗镇",
+          "本号镇",
+          "新村镇",
+          "黎安镇",
+          "提蒙乡",
+          "群英乡",
+          "国营岭门农场",
+          "国营南平农场",
+          "国营吊罗山林业公司"
+        ]
+      },
+      {
+        "name": "保亭黎族苗族自治县",
+        "list": [
+          "保城镇",
+          "什玲镇",
+          "加茂镇",
+          "响水镇",
+          "新政镇",
+          "三道镇",
+          "六弓乡",
+          "南林乡",
+          "毛感乡",
+          "国营新星农场",
+          "海南保亭热带作物研究所",
+          "国营金江农场",
+          "国营三道农场"
+        ]
+      },
+      {
+        "name": "琼中黎族苗族自治县",
+        "list": [
+          "营根镇",
+          "湾岭镇",
+          "黎母山镇",
+          "和平镇",
+          "长征镇",
+          "红毛镇",
+          "中平镇",
+          "吊罗山乡",
+          "上安乡",
+          "什运乡",
+          "国营阳江农场",
+          "国营乌石农场",
+          "国营加钗农场",
+          "国营长征农场",
+          "国营黎母山林业公司"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "重庆市",
+    "list": [
+      {
+        "name": "重庆市",
+        "list": [
+          "万州区",
+          "涪陵区",
+          "渝中区",
+          "大渡口区",
+          "江北区",
+          "沙坪坝区",
+          "九龙坡区",
+          "南岸区",
+          "北碚区",
+          "渝北区",
+          "巴南区",
+          "黔江区",
+          "长寿区",
+          "綦江区",
+          "潼南区",
+          "铜梁区",
+          "大足区",
+          "荣昌区",
+          "璧山区",
+          "梁平区",
+          "城口县",
+          "丰都县",
+          "垫江县",
+          "武隆区",
+          "忠县",
+          "开州区",
+          "云阳县",
+          "奉节县",
+          "巫山县",
+          "巫溪县",
+          "石柱土家族自治县",
+          "秀山土家族苗族自治县",
+          "酉阳土家族苗族自治县",
+          "彭水苗族土家族自治县",
+          "江津区",
+          "合川区",
+          "永川区",
+          "南川区",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "四川省",
+    "list": [
+      {
+        "name": "成都市",
+        "list": [
+          "锦江区",
+          "青羊区",
+          "金牛区",
+          "武侯区",
+          "成华区",
+          "龙泉驿区",
+          "青白江区",
+          "新都区",
+          "温江区",
+          "金堂县",
+          "双流区",
+          "郫都区",
+          "大邑县",
+          "蒲江县",
+          "新津县",
+          "都江堰市",
+          "彭州市",
+          "邛崃市",
+          "崇州市",
+          "其它区",
+          "简阳市"
+        ]
+      },
+      {
+        "name": "自贡市",
+        "list": [
+          "自流井区",
+          "贡井区",
+          "大安区",
+          "沿滩区",
+          "荣县",
+          "富顺县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "攀枝花市",
+        "list": [
+          "东区",
+          "西区",
+          "仁和区",
+          "米易县",
+          "盐边县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "泸州市",
+        "list": [
+          "江阳区",
+          "纳溪区",
+          "龙马潭区",
+          "泸县",
+          "合江县",
+          "叙永县",
+          "古蔺县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "德阳市",
+        "list": [
+          "旌阳区",
+          "中江县",
+          "罗江区",
+          "广汉市",
+          "什邡市",
+          "绵竹市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "绵阳市",
+        "list": [
+          "涪城区",
+          "游仙区",
+          "三台县",
+          "盐亭县",
+          "安州区",
+          "梓潼县",
+          "北川羌族自治县",
+          "平武县",
+          "江油市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "广元市",
+        "list": [
+          "利州区",
+          "昭化区",
+          "朝天区",
+          "旺苍县",
+          "青川县",
+          "剑阁县",
+          "苍溪县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "遂宁市",
+        "list": [
+          "船山区",
+          "安居区",
+          "蓬溪县",
+          "射洪县",
+          "大英县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "内江市",
+        "list": [
+          "市中区",
+          "东兴区",
+          "威远县",
+          "资中县",
+          "隆昌市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "乐山市",
+        "list": [
+          "市中区",
+          "沙湾区",
+          "五通桥区",
+          "金口河区",
+          "犍为县",
+          "井研县",
+          "夹江县",
+          "沐川县",
+          "峨边彝族自治县",
+          "马边彝族自治县",
+          "峨眉山市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "南充市",
+        "list": [
+          "顺庆区",
+          "高坪区",
+          "嘉陵区",
+          "南部县",
+          "营山县",
+          "蓬安县",
+          "仪陇县",
+          "西充县",
+          "阆中市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "眉山市",
+        "list": [
+          "东坡区",
+          "仁寿县",
+          "彭山区",
+          "洪雅县",
+          "丹棱县",
+          "青神县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宜宾市",
+        "list": [
+          "翠屏区",
+          "宜宾县",
+          "南溪区",
+          "江安县",
+          "长宁县",
+          "高县",
+          "珙县",
+          "筠连县",
+          "兴文县",
+          "屏山县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "广安市",
+        "list": [
+          "广安区",
+          "前锋区",
+          "岳池县",
+          "武胜县",
+          "邻水县",
+          "华蓥市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "达州市",
+        "list": [
+          "通川区",
+          "达川区",
+          "宣汉县",
+          "开江县",
+          "大竹县",
+          "渠县",
+          "万源市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "雅安市",
+        "list": [
+          "雨城区",
+          "名山区",
+          "荥经县",
+          "汉源县",
+          "石棉县",
+          "天全县",
+          "芦山县",
+          "宝兴县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "巴中市",
+        "list": [
+          "巴州区",
+          "恩阳区",
+          "通江县",
+          "南江县",
+          "平昌县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "资阳市",
+        "list": [
+          "雁江区",
+          "安岳县",
+          "乐至县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阿坝藏族羌族自治州",
+        "list": [
+          "汶川县",
+          "理县",
+          "茂县",
+          "松潘县",
+          "九寨沟县",
+          "金川县",
+          "小金县",
+          "黑水县",
+          "马尔康市",
+          "壤塘县",
+          "阿坝县",
+          "若尔盖县",
+          "红原县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "甘孜藏族自治州",
+        "list": [
+          "康定市",
+          "泸定县",
+          "丹巴县",
+          "九龙县",
+          "雅江县",
+          "道孚县",
+          "炉霍县",
+          "甘孜县",
+          "新龙县",
+          "德格县",
+          "白玉县",
+          "石渠县",
+          "色达县",
+          "理塘县",
+          "巴塘县",
+          "乡城县",
+          "稻城县",
+          "得荣县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "凉山彝族自治州",
+        "list": [
+          "西昌市",
+          "木里藏族自治县",
+          "盐源县",
+          "德昌县",
+          "会理县",
+          "会东县",
+          "宁南县",
+          "普格县",
+          "布拖县",
+          "金阳县",
+          "昭觉县",
+          "喜德县",
+          "冕宁县",
+          "越西县",
+          "甘洛县",
+          "美姑县",
+          "雷波县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "贵州省",
+    "list": [
+      {
+        "name": "贵阳市",
+        "list": [
+          "南明区",
+          "云岩区",
+          "花溪区",
+          "乌当区",
+          "白云区",
+          "观山湖区",
+          "开阳县",
+          "息烽县",
+          "修文县",
+          "清镇市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "六盘水市",
+        "list": [
+          "钟山区",
+          "六枝特区",
+          "水城县",
+          "盘县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "遵义市",
+        "list": [
+          "红花岗区",
+          "汇川区",
+          "遵义县",
+          "桐梓县",
+          "绥阳县",
+          "正安县",
+          "道真仡佬族苗族自治县",
+          "务川仡佬族苗族自治县",
+          "凤冈县",
+          "湄潭县",
+          "余庆县",
+          "习水县",
+          "赤水市",
+          "仁怀市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "安顺市",
+        "list": [
+          "西秀区",
+          "平坝区",
+          "普定县",
+          "镇宁布依族苗族自治县",
+          "关岭布依族苗族自治县",
+          "紫云苗族布依族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "毕节市",
+        "list": [
+          "七星关区",
+          "大方县",
+          "黔西县",
+          "金沙县",
+          "织金县",
+          "纳雍县",
+          "威宁彝族回族苗族自治县",
+          "赫章县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "铜仁市",
+        "list": [
+          "碧江区",
+          "万山区",
+          "江口县",
+          "玉屏侗族自治县",
+          "石阡县",
+          "思南县",
+          "印江土家族苗族自治县",
+          "德江县",
+          "沿河土家族自治县",
+          "松桃苗族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黔西南布依族苗族自治州",
+        "list": [
+          "兴义市",
+          "兴仁县",
+          "普安县",
+          "晴隆县",
+          "贞丰县",
+          "望谟县",
+          "册亨县",
+          "安龙县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黔东南苗族侗族自治州",
+        "list": [
+          "凯里市",
+          "黄平县",
+          "施秉县",
+          "三穗县",
+          "镇远县",
+          "岑巩县",
+          "天柱县",
+          "锦屏县",
+          "剑河县",
+          "台江县",
+          "黎平县",
+          "榕江县",
+          "从江县",
+          "雷山县",
+          "麻江县",
+          "丹寨县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黔南布依族苗族自治州",
+        "list": [
+          "都匀市",
+          "福泉市",
+          "荔波县",
+          "贵定县",
+          "瓮安县",
+          "独山县",
+          "平塘县",
+          "罗甸县",
+          "长顺县",
+          "龙里县",
+          "惠水县",
+          "三都水族自治县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "云南省",
+    "list": [
+      {
+        "name": "昆明市",
+        "list": [
+          "五华区",
+          "盘龙区",
+          "官渡区",
+          "西山区",
+          "东川区",
+          "呈贡区",
+          "晋宁县",
+          "富民县",
+          "宜良县",
+          "石林彝族自治县",
+          "嵩明县",
+          "禄劝彝族苗族自治县",
+          "寻甸回族彝族自治县",
+          "安宁市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "曲靖市",
+        "list": [
+          "麒麟区",
+          "马龙县",
+          "陆良县",
+          "师宗县",
+          "罗平县",
+          "富源县",
+          "会泽县",
+          "沾益县",
+          "宣威市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "玉溪市",
+        "list": [
+          "红塔区",
+          "江川区",
+          "澄江县",
+          "通海县",
+          "华宁县",
+          "易门县",
+          "峨山彝族自治县",
+          "新平彝族傣族自治县",
+          "元江哈尼族彝族傣族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "保山市",
+        "list": [
+          "隆阳区",
+          "施甸县",
+          "龙陵县",
+          "昌宁县",
+          "腾冲市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "昭通市",
+        "list": [
+          "昭阳区",
+          "鲁甸县",
+          "巧家县",
+          "盐津县",
+          "大关县",
+          "永善县",
+          "绥江县",
+          "镇雄县",
+          "彝良县",
+          "威信县",
+          "水富县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "丽江市",
+        "list": [
+          "古城区",
+          "玉龙纳西族自治县",
+          "永胜县",
+          "华坪县",
+          "宁蒗彝族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "普洱市",
+        "list": [
+          "思茅区",
+          "宁洱哈尼族彝族自治县",
+          "墨江哈尼族自治县",
+          "景东彝族自治县",
+          "景谷傣族彝族自治县",
+          "镇沅彝族哈尼族拉祜族自治县",
+          "江城哈尼族彝族自治县",
+          "孟连傣族拉祜族佤族自治县",
+          "澜沧拉祜族自治县",
+          "西盟佤族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "临沧市",
+        "list": [
+          "临翔区",
+          "凤庆县",
+          "云县",
+          "永德县",
+          "镇康县",
+          "双江拉祜族佤族布朗族傣族自治县",
+          "耿马傣族佤族自治县",
+          "沧源佤族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "楚雄彝族自治州",
+        "list": [
+          "楚雄市",
+          "双柏县",
+          "牟定县",
+          "南华县",
+          "姚安县",
+          "大姚县",
+          "永仁县",
+          "元谋县",
+          "武定县",
+          "禄丰县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "红河哈尼族彝族自治州",
+        "list": [
+          "个旧市",
+          "开远市",
+          "蒙自市",
+          "弥勒市",
+          "屏边苗族自治县",
+          "建水县",
+          "石屏县",
+          "泸西县",
+          "元阳县",
+          "红河县",
+          "金平苗族瑶族傣族自治县",
+          "绿春县",
+          "河口瑶族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "文山壮族苗族自治州",
+        "list": [
+          "文山市",
+          "砚山县",
+          "西畴县",
+          "麻栗坡县",
+          "马关县",
+          "丘北县",
+          "广南县",
+          "富宁县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "西双版纳傣族自治州",
+        "list": [
+          "景洪市",
+          "勐海县",
+          "勐腊县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "大理白族自治州",
+        "list": [
+          "大理市",
+          "漾濞彝族自治县",
+          "祥云县",
+          "宾川县",
+          "弥渡县",
+          "南涧彝族自治县",
+          "巍山彝族回族自治县",
+          "永平县",
+          "云龙县",
+          "洱源县",
+          "剑川县",
+          "鹤庆县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "德宏傣族景颇族自治州",
+        "list": [
+          "瑞丽市",
+          "芒市",
+          "梁河县",
+          "盈江县",
+          "陇川县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "怒江傈僳族自治州",
+        "list": [
+          "泸水县",
+          "福贡县",
+          "贡山独龙族怒族自治县",
+          "兰坪白族普米族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "迪庆藏族自治州",
+        "list": [
+          "香格里拉市",
+          "德钦县",
+          "维西傈僳族自治县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "西藏自治区",
+    "list": [
+      {
+        "name": "拉萨市",
+        "list": [
+          "城关区",
+          "堆龙德庆区",
+          "林周县",
+          "当雄县",
+          "尼木县",
+          "曲水县",
+          "达孜县",
+          "墨竹工卡县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "日喀则市",
+        "list": [
+          "桑珠孜区",
+          "南木林县",
+          "江孜县",
+          "定日县",
+          "萨迦县",
+          "拉孜县",
+          "昂仁县",
+          "谢通门县",
+          "白朗县",
+          "仁布县",
+          "康马县",
+          "定结县",
+          "仲巴县",
+          "亚东县",
+          "吉隆县",
+          "聂拉木县",
+          "萨嘎县",
+          "岗巴县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "昌都市",
+        "list": [
+          "卡若区",
+          "江达县",
+          "贡觉县",
+          "类乌齐县",
+          "丁青县",
+          "察雅县",
+          "八宿县",
+          "左贡县",
+          "芒康县",
+          "洛隆县",
+          "边坝县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "林芝市",
+        "list": [
+          "巴宜区",
+          "工布江达县",
+          "米林县",
+          "墨脱县",
+          "波密县",
+          "察隅县",
+          "朗县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "山南地区",
+        "list": [
+          "乃东县",
+          "扎囊县",
+          "贡嘎县",
+          "桑日县",
+          "琼结县",
+          "曲松县",
+          "措美县",
+          "洛扎县",
+          "加查县",
+          "隆子县",
+          "错那县",
+          "浪卡子县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "那曲地区",
+        "list": [
+          "那曲县",
+          "嘉黎县",
+          "比如县",
+          "聂荣县",
+          "安多县",
+          "申扎县",
+          "索县",
+          "班戈县",
+          "巴青县",
+          "尼玛县",
+          "双湖县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阿里地区",
+        "list": [
+          "普兰县",
+          "札达县",
+          "噶尔县",
+          "日土县",
+          "革吉县",
+          "改则县",
+          "措勤县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "陕西省",
+    "list": [
+      {
+        "name": "西安市",
+        "list": [
+          "新城区",
+          "碑林区",
+          "莲湖区",
+          "灞桥区",
+          "未央区",
+          "雁塔区",
+          "阎良区",
+          "临潼区",
+          "长安区",
+          "高陵区",
+          "蓝田县",
+          "周至县",
+          "户县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "铜川市",
+        "list": [
+          "王益区",
+          "印台区",
+          "耀州区",
+          "宜君县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宝鸡市",
+        "list": [
+          "渭滨区",
+          "金台区",
+          "陈仓区",
+          "凤翔县",
+          "岐山县",
+          "扶风县",
+          "眉县",
+          "陇县",
+          "千阳县",
+          "麟游县",
+          "凤县",
+          "太白县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "咸阳市",
+        "list": [
+          "秦都区",
+          "杨陵区",
+          "渭城区",
+          "三原县",
+          "泾阳县",
+          "乾县",
+          "礼泉县",
+          "永寿县",
+          "彬县",
+          "长武县",
+          "旬邑县",
+          "淳化县",
+          "武功县",
+          "兴平市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "渭南市",
+        "list": [
+          "临渭区",
+          "华州区",
+          "潼关县",
+          "大荔县",
+          "合阳县",
+          "澄城县",
+          "蒲城县",
+          "白水县",
+          "富平县",
+          "韩城市",
+          "华阴市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "延安市",
+        "list": [
+          "宝塔区",
+          "延长县",
+          "延川县",
+          "子长县",
+          "安塞县",
+          "志丹县",
+          "吴起县",
+          "甘泉县",
+          "富县",
+          "洛川县",
+          "宜川县",
+          "黄龙县",
+          "黄陵县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "汉中市",
+        "list": [
+          "汉台区",
+          "南郑县",
+          "城固县",
+          "洋县",
+          "西乡县",
+          "勉县",
+          "宁强县",
+          "略阳县",
+          "镇巴县",
+          "留坝县",
+          "佛坪县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "榆林市",
+        "list": [
+          "榆阳区",
+          "横山区",
+          "神木县",
+          "府谷县",
+          "靖边县",
+          "定边县",
+          "绥德县",
+          "米脂县",
+          "佳县",
+          "吴堡县",
+          "清涧县",
+          "子洲县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "安康市",
+        "list": [
+          "汉滨区",
+          "汉阴县",
+          "石泉县",
+          "宁陕县",
+          "紫阳县",
+          "岚皋县",
+          "平利县",
+          "镇坪县",
+          "旬阳县",
+          "白河县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "商洛市",
+        "list": [
+          "商州区",
+          "洛南县",
+          "丹凤县",
+          "商南县",
+          "山阳县",
+          "镇安县",
+          "柞水县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "甘肃省",
+    "list": [
+      {
+        "name": "兰州市",
+        "list": [
+          "城关区",
+          "七里河区",
+          "西固区",
+          "安宁区",
+          "红古区",
+          "永登县",
+          "皋兰县",
+          "榆中县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "嘉峪关市",
+        "list": [
+          "新城镇",
+          "峪泉镇",
+          "文殊镇",
+          "雄关区",
+          "镜铁区",
+          "长城区"
+        ]
+      },
+      {
+        "name": "金昌市",
+        "list": [
+          "金川区",
+          "永昌县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "白银市",
+        "list": [
+          "白银区",
+          "平川区",
+          "靖远县",
+          "会宁县",
+          "景泰县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "天水市",
+        "list": [
+          "秦州区",
+          "麦积区",
+          "清水县",
+          "秦安县",
+          "甘谷县",
+          "武山县",
+          "张家川回族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "武威市",
+        "list": [
+          "凉州区",
+          "民勤县",
+          "古浪县",
+          "天祝藏族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "张掖市",
+        "list": [
+          "甘州区",
+          "肃南裕固族自治县",
+          "民乐县",
+          "临泽县",
+          "高台县",
+          "山丹县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "平凉市",
+        "list": [
+          "崆峒区",
+          "泾川县",
+          "灵台县",
+          "崇信县",
+          "华亭县",
+          "庄浪县",
+          "静宁县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "酒泉市",
+        "list": [
+          "肃州区",
+          "金塔县",
+          "瓜州县",
+          "肃北蒙古族自治县",
+          "阿克塞哈萨克族自治县",
+          "玉门市",
+          "敦煌市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "庆阳市",
+        "list": [
+          "西峰区",
+          "庆城县",
+          "环县",
+          "华池县",
+          "合水县",
+          "正宁县",
+          "宁县",
+          "镇原县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "定西市",
+        "list": [
+          "安定区",
+          "通渭县",
+          "陇西县",
+          "渭源县",
+          "临洮县",
+          "漳县",
+          "岷县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "陇南市",
+        "list": [
+          "武都区",
+          "成县",
+          "文县",
+          "宕昌县",
+          "康县",
+          "西和县",
+          "礼县",
+          "徽县",
+          "两当县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "临夏回族自治州",
+        "list": [
+          "临夏市",
+          "临夏县",
+          "康乐县",
+          "永靖县",
+          "广河县",
+          "和政县",
+          "东乡族自治县",
+          "积石山保安族东乡族撒拉族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "甘南藏族自治州",
+        "list": [
+          "合作市",
+          "临潭县",
+          "卓尼县",
+          "舟曲县",
+          "迭部县",
+          "玛曲县",
+          "碌曲县",
+          "夏河县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "青海省",
+    "list": [
+      {
+        "name": "西宁市",
+        "list": [
+          "城东区",
+          "城中区",
+          "城西区",
+          "城北区",
+          "大通回族土族自治县",
+          "湟中县",
+          "湟源县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "海东市",
+        "list": [
+          "乐都区",
+          "平安区",
+          "民和回族土族自治县",
+          "互助土族自治县",
+          "化隆回族自治县",
+          "循化撒拉族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "海北藏族自治州",
+        "list": [
+          "门源回族自治县",
+          "祁连县",
+          "海晏县",
+          "刚察县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "黄南藏族自治州",
+        "list": [
+          "同仁县",
+          "尖扎县",
+          "泽库县",
+          "河南蒙古族自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "海南藏族自治州",
+        "list": [
+          "共和县",
+          "同德县",
+          "贵德县",
+          "兴海县",
+          "贵南县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "果洛藏族自治州",
+        "list": [
+          "玛沁县",
+          "班玛县",
+          "甘德县",
+          "达日县",
+          "久治县",
+          "玛多县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "玉树藏族自治州",
+        "list": [
+          "玉树市",
+          "杂多县",
+          "称多县",
+          "治多县",
+          "囊谦县",
+          "曲麻莱县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "海西蒙古族藏族自治州",
+        "list": [
+          "格尔木市",
+          "德令哈市",
+          "乌兰县",
+          "都兰县",
+          "天峻县",
+          "海西蒙古族藏族自治州直辖",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "宁夏回族自治区",
+    "list": [
+      {
+        "name": "银川市",
+        "list": [
+          "兴庆区",
+          "西夏区",
+          "金凤区",
+          "永宁县",
+          "贺兰县",
+          "灵武市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "石嘴山市",
+        "list": [
+          "大武口区",
+          "惠农区",
+          "平罗县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "吴忠市",
+        "list": [
+          "利通区",
+          "红寺堡区",
+          "盐池县",
+          "同心县",
+          "青铜峡市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "固原市",
+        "list": [
+          "原州区",
+          "西吉县",
+          "隆德县",
+          "泾源县",
+          "彭阳县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "中卫市",
+        "list": [
+          "沙坡头区",
+          "中宁县",
+          "海原县",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "新疆维吾尔自治区",
+    "list": [
+      {
+        "name": "乌鲁木齐市",
+        "list": [
+          "天山区",
+          "沙依巴克区",
+          "新市区",
+          "水磨沟区",
+          "头屯河区",
+          "达坂城区",
+          "米东区",
+          "乌鲁木齐县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "克拉玛依市",
+        "list": [
+          "独山子区",
+          "克拉玛依区",
+          "白碱滩区",
+          "乌尔禾区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "吐鲁番市",
+        "list": [
+          "高昌区",
+          "鄯善县",
+          "托克逊县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "哈密市",
+        "list": [
+          "哈密市",
+          "巴里坤哈萨克自治县",
+          "伊吾县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "昌吉回族自治州",
+        "list": [
+          "昌吉市",
+          "阜康市",
+          "呼图壁县",
+          "玛纳斯县",
+          "奇台县",
+          "吉木萨尔县",
+          "木垒哈萨克自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "博尔塔拉蒙古自治州",
+        "list": [
+          "博乐市",
+          "阿拉山口市",
+          "精河县",
+          "温泉县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "巴音郭楞蒙古自治州",
+        "list": [
+          "库尔勒市",
+          "轮台县",
+          "尉犁县",
+          "若羌县",
+          "且末县",
+          "焉耆回族自治县",
+          "和静县",
+          "和硕县",
+          "博湖县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阿克苏地区",
+        "list": [
+          "阿克苏市",
+          "温宿县",
+          "库车县",
+          "沙雅县",
+          "新和县",
+          "拜城县",
+          "乌什县",
+          "阿瓦提县",
+          "柯坪县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "克孜勒苏柯尔克孜自治州",
+        "list": [
+          "阿图什市",
+          "阿克陶县",
+          "阿合奇县",
+          "乌恰县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "喀什地区",
+        "list": [
+          "喀什市",
+          "疏附县",
+          "疏勒县",
+          "英吉沙县",
+          "泽普县",
+          "莎车县",
+          "叶城县",
+          "麦盖提县",
+          "岳普湖县",
+          "伽师县",
+          "巴楚县",
+          "塔什库尔干塔吉克自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "和田地区",
+        "list": [
+          "和田市",
+          "和田县",
+          "墨玉县",
+          "皮山县",
+          "洛浦县",
+          "策勒县",
+          "于田县",
+          "民丰县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "伊犁哈萨克自治州",
+        "list": [
+          "伊宁市",
+          "奎屯市",
+          "霍尔果斯市",
+          "伊宁县",
+          "察布查尔锡伯自治县",
+          "霍城县",
+          "巩留县",
+          "新源县",
+          "昭苏县",
+          "特克斯县",
+          "尼勒克县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "塔城地区",
+        "list": [
+          "塔城市",
+          "乌苏市",
+          "额敏县",
+          "沙湾县",
+          "托里县",
+          "裕民县",
+          "和布克赛尔蒙古自治县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阿勒泰地区",
+        "list": [
+          "阿勒泰市",
+          "布尔津县",
+          "富蕴县",
+          "福海县",
+          "哈巴河县",
+          "青河县",
+          "吉木乃县",
+          "其它区"
+        ]
+      },
+      {
+        "name": "石河子市",
+        "list": [
+          "新城街道",
+          "向阳街道",
+          "红山街道",
+          "老街街道",
+          "东城街道",
+          "北泉镇",
+          "石河子乡",
+          "兵团一五二团",
+          "其它区"
+        ]
+      },
+      {
+        "name": "阿拉尔市",
+        "list": [
+          "金银川路街道",
+          "幸福路街道",
+          "青松路街道",
+          "南口街道",
+          "托喀依乡",
+          "工业园区",
+          "兵团七团",
+          "兵团八团",
+          "兵团十团",
+          "兵团十一团",
+          "兵团十二团",
+          "兵团十三团",
+          "兵团十四团",
+          "兵团十六团",
+          "兵团第一师水利水电工程处",
+          "兵团第一师塔里木灌区水利管理处",
+          "阿拉尔农场",
+          "兵团第一师幸福农场",
+          "中心监狱",
+          "其它区"
+        ]
+      },
+      {
+        "name": "图木舒克市",
+        "list": [
+          "齐干却勒街道",
+          "前海街道",
+          "永安坝街道",
+          "兵团四十四团",
+          "兵团四十九团",
+          "兵团五十团",
+          "兵团五十一团",
+          "兵团五十三团",
+          "兵团图木舒克市喀拉拜勒镇",
+          "兵团图木舒克市永安坝",
+          "其它区"
+        ]
+      },
+      {
+        "name": "五家渠市",
+        "list": [
+          "军垦路街道",
+          "青湖路街道",
+          "人民路街道",
+          "兵团一零一团",
+          "兵团一零二团",
+          "兵团一零三团",
+          "其它区"
+        ]
+      },
+      {
+        "name": "北屯市",
+        "list": [
+          "北屯镇",
+          "兵团一八三团",
+          "兵团一八七团",
+          "兵团一八八团",
+          "其它区"
+        ]
+      },
+      {
+        "name": "铁门关市",
+        "list": [
+          "农二师三十团",
+          "兵团二十九团",
+          "其它区"
+        ]
+      },
+      {
+        "name": "双河市",
+        "list": [
+          "双河市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "可克达拉市",
+        "list": [
+          "可克达拉市",
+          "其它区"
+        ]
+      },
+      {
+        "name": "昆玉市",
+        "list": [
+          "兵团二二四团",
+          "兵团皮山农场",
+          "喀拉喀什镇",
+          "乌尔其乡",
+          "普恰克其乡",
+          "阔依其乡",
+          "乌鲁克萨依乡",
+          "奴尔乡",
+          "博斯坦乡",
+          "兵团四十七团",
+          "兵团一牧场",
+          "兵团一牧场",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "台湾省",
+    "list": [
+      {
+        "name": "台北市",
+        "list": [
+          "松山区",
+          "信义区",
+          "大安区",
+          "中山区",
+          "中正区",
+          "大同区",
+          "万华区",
+          "文山区",
+          "南港区",
+          "内湖区",
+          "士林区",
+          "北投区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "高雄市",
+        "list": [
+          "盐埕区",
+          "鼓山区",
+          "左营区",
+          "楠梓区",
+          "三民区",
+          "新兴区",
+          "前金区",
+          "苓雅区",
+          "前镇区",
+          "旗津区",
+          "小港区",
+          "凤山区",
+          "林园区",
+          "大寮区",
+          "大树区",
+          "大社区",
+          "仁武区",
+          "鸟松区",
+          "冈山区",
+          "桥头区",
+          "燕巢区",
+          "田寮区",
+          "阿莲区",
+          "路竹区",
+          "湖内区",
+          "茄萣区",
+          "永安区",
+          "弥陀区",
+          "梓官区",
+          "旗山区",
+          "美浓区",
+          "六龟区",
+          "甲仙区",
+          "杉林区",
+          "内门区",
+          "茂林区",
+          "桃源区",
+          "那玛夏区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "基隆市",
+        "list": [
+          "中正区",
+          "七堵区",
+          "暖暖区",
+          "仁爱区",
+          "中山区",
+          "安乐区",
+          "信义区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "台中市",
+        "list": [
+          "中区",
+          "东区",
+          "南区",
+          "西区",
+          "北区",
+          "西屯区",
+          "南屯区",
+          "北屯区",
+          "丰原区",
+          "东势区",
+          "大甲区",
+          "清水区",
+          "沙鹿区",
+          "梧栖区",
+          "后里区",
+          "神冈区",
+          "潭子区",
+          "大雅区",
+          "新社区",
+          "石冈区",
+          "外埔区",
+          "大安区",
+          "乌日区",
+          "大肚区",
+          "龙井区",
+          "雾峰区",
+          "太平区",
+          "大里区",
+          "和平区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "台南市",
+        "list": [
+          "东区",
+          "南区",
+          "北区",
+          "安南区",
+          "安平区",
+          "中西区",
+          "新营区",
+          "盐水区",
+          "白河区",
+          "柳营区",
+          "后壁区",
+          "东山区",
+          "麻豆区",
+          "下营区",
+          "六甲区",
+          "官田区",
+          "大内区",
+          "佳里区",
+          "学甲区",
+          "西港区",
+          "七股区",
+          "将军区",
+          "北门区",
+          "新化区",
+          "善化区",
+          "新市区",
+          "安定区",
+          "山上区",
+          "玉井区",
+          "楠西区",
+          "南化区",
+          "左镇区",
+          "仁德区",
+          "归仁区",
+          "关庙区",
+          "龙崎区",
+          "永康区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "新竹市",
+        "list": [
+          "东区",
+          "北区",
+          "香山区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "嘉义市",
+        "list": [
+          "东区",
+          "西区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "新北市",
+        "list": [
+          "板桥区",
+          "三重区",
+          "中和区",
+          "永和区",
+          "新庄区",
+          "新店区",
+          "树林区",
+          "莺歌区",
+          "三峡区",
+          "淡水区",
+          "汐止区",
+          "瑞芳区",
+          "土城区",
+          "芦洲区",
+          "五股区",
+          "泰山区",
+          "林口区",
+          "深坑区",
+          "石碇区",
+          "坪林区",
+          "三芝区",
+          "石门区",
+          "八里区",
+          "平溪区",
+          "双溪区",
+          "贡寮区",
+          "金山区",
+          "万里区",
+          "乌来区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "宜兰县",
+        "list": [
+          "宜兰市",
+          "罗东镇",
+          "苏澳镇",
+          "头城镇",
+          "礁溪乡",
+          "壮围乡",
+          "员山乡",
+          "冬山乡",
+          "五结乡",
+          "三星乡",
+          "大同乡",
+          "南澳乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "桃园县",
+        "list": [
+          "桃园市",
+          "中坜市",
+          "平镇市",
+          "八德市",
+          "杨梅市",
+          "大溪镇",
+          "芦竹乡",
+          "大园乡",
+          "龟山乡",
+          "龙潭乡",
+          "新屋乡",
+          "观音乡",
+          "复兴乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "新竹县",
+        "list": [
+          "竹北市",
+          "竹东镇",
+          "新埔镇",
+          "关西镇",
+          "湖口乡",
+          "新丰乡",
+          "芎林乡",
+          "橫山乡",
+          "北埔乡",
+          "宝山乡",
+          "峨眉乡",
+          "尖石乡",
+          "五峰乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "苗栗县",
+        "list": [
+          "苗栗市",
+          "苑里镇",
+          "通霄镇",
+          "竹南镇",
+          "头份镇",
+          "后龙镇",
+          "卓兰镇",
+          "大湖乡",
+          "公馆乡",
+          "铜锣乡",
+          "南庄乡",
+          "头屋乡",
+          "三义乡",
+          "西湖乡",
+          "造桥乡",
+          "三湾乡",
+          "狮潭乡",
+          "泰安乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "彰化县",
+        "list": [
+          "彰化市",
+          "鹿港镇",
+          "和美镇",
+          "线西乡",
+          "伸港乡",
+          "福兴乡",
+          "秀水乡",
+          "花坛乡",
+          "芬园乡",
+          "员林镇",
+          "溪湖镇",
+          "田中镇",
+          "大村乡",
+          "埔盐乡",
+          "埔心乡",
+          "永靖乡",
+          "社头乡",
+          "二水乡",
+          "北斗镇",
+          "二林镇",
+          "田尾乡",
+          "埤头乡",
+          "芳苑乡",
+          "大城乡",
+          "竹塘乡",
+          "溪州乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "南投县",
+        "list": [
+          "南投市",
+          "埔里镇",
+          "草屯镇",
+          "竹山镇",
+          "集集镇",
+          "名间乡",
+          "鹿谷乡",
+          "中寮乡",
+          "鱼池乡",
+          "国姓乡",
+          "水里乡",
+          "信义乡",
+          "仁爱乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "云林县",
+        "list": [
+          "斗六市",
+          "斗南镇",
+          "虎尾镇",
+          "西螺镇",
+          "土库镇",
+          "北港镇",
+          "古坑乡",
+          "大埤乡",
+          "莿桐乡",
+          "林内乡",
+          "二仑乡",
+          "仑背乡",
+          "麦寮乡",
+          "东势乡",
+          "褒忠乡",
+          "台西乡",
+          "元长乡",
+          "四湖乡",
+          "口湖乡",
+          "水林乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "嘉义县",
+        "list": [
+          "太保市",
+          "朴子市",
+          "布袋镇",
+          "大林镇",
+          "民雄乡",
+          "溪口乡",
+          "新港乡",
+          "六脚乡",
+          "东石乡",
+          "义竹乡",
+          "鹿草乡",
+          "水上乡",
+          "中埔乡",
+          "竹崎乡",
+          "梅山乡",
+          "番路乡",
+          "大埔乡",
+          "阿里山乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "屏东县",
+        "list": [
+          "屏东市",
+          "潮州镇",
+          "东港镇",
+          "恒春镇",
+          "万丹乡",
+          "长治乡",
+          "麟洛乡",
+          "九如乡",
+          "里港乡",
+          "盐埔乡",
+          "高树乡",
+          "万峦乡",
+          "内埔乡",
+          "竹田乡",
+          "新埤乡",
+          "枋寮乡",
+          "新园乡",
+          "崁顶乡",
+          "林边乡",
+          "南州乡",
+          "佳冬乡",
+          "琉球乡",
+          "车城乡",
+          "满州乡",
+          "枋山乡",
+          "三地门乡",
+          "雾台乡",
+          "玛家乡",
+          "泰武乡",
+          "来义乡",
+          "春日乡",
+          "狮子乡",
+          "牡丹乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "台东县",
+        "list": [
+          "台东市",
+          "成功镇",
+          "关山镇",
+          "卑南乡",
+          "鹿野乡",
+          "池上乡",
+          "东河乡",
+          "长滨乡",
+          "太麻里乡",
+          "大武乡",
+          "绿岛乡",
+          "海端乡",
+          "延平乡",
+          "金峰乡",
+          "达仁乡",
+          "兰屿乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "花莲县",
+        "list": [
+          "花莲市",
+          "凤林镇",
+          "玉里镇",
+          "新城乡",
+          "吉安乡",
+          "寿丰乡",
+          "光复乡",
+          "丰滨乡",
+          "瑞穗乡",
+          "富里乡",
+          "秀林乡",
+          "万荣乡",
+          "卓溪乡",
+          "其它区"
+        ]
+      },
+      {
+        "name": "澎湖县",
+        "list": [
+          "马公市",
+          "湖西乡",
+          "白沙乡",
+          "西屿乡",
+          "望安乡",
+          "七美乡",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "香港",
+    "list": [
+      {
+        "name": "香港岛",
+        "list": [
+          "中西区",
+          "湾仔区",
+          "东区",
+          "南区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "九龙",
+        "list": [
+          "油尖旺区",
+          "深水埗区",
+          "九龙城区",
+          "黄大仙区",
+          "观塘区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "新界",
+        "list": [
+          "荃湾区",
+          "屯门区",
+          "元朗区",
+          "北区",
+          "大埔区",
+          "西贡区",
+          "沙田区",
+          "葵青区",
+          "离岛区",
+          "其它区"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "澳门",
+    "list": [
+      {
+        "name": "澳门半岛",
+        "list": [
+          "花地玛堂区",
+          "圣安多尼堂区",
+          "大堂区",
+          "望德堂区",
+          "风顺堂区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "氹仔",
+        "list": [
+          "嘉模堂区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "路环",
+        "list": [
+          "圣方济各堂区",
+          "其它区"
+        ]
+      },
+      {
+        "name": "路氹城",
+        "list": [
+          "路氹城",
+          "其它区"
+        ]
+      }
+    ]
+  }
+]

+ 18 - 0
assets/lib/jquery/area/area.php

@@ -0,0 +1,18 @@
+<?php
+
+$data = [];
+$list = json_decode(file_get_contents(__DIR__ . '/area.json'), true);
+foreach ($list as $citys) {
+    $lines = [];
+    foreach ($citys['list'] as $area) {
+        $lines[] = $area['name'] . ',' . join(',', $area['list']);
+    }
+    $data[] = $citys['name'] . '$' . join('|', $lines);
+}
+$filename = dirname(__DIR__) . '/pcasunzips.js';
+$content = str_replace('__STRING__', join('#', $data), file_get_contents(__DIR__ . '/area.js'));
+if (file_put_contents($filename, $content)) {
+    echo 'success';
+} else {
+    echo 'error';
+}

+ 79 - 0
assets/lib/jquery/autocompleter.css

@@ -0,0 +1,79 @@
+.autocompleter {
+    left: 0;
+    top: 37px;
+    width: 100%;
+    z-index: 100;
+    background: #fff;
+    position: absolute;
+}
+
+.autocompleter, .autocompleter-hint {
+    position: absolute
+}
+
+.autocompleter-focus .autocompleter-list {
+    border: 1px solid #c9c9c9;
+    border-bottom-left-radius: 2px;
+    border-bottom-right-radius: 2px;
+}
+
+.autocompleter-list {
+    margin: 0;
+    padding: 0;
+    text-align: left;
+    list-style: none;
+    box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+}
+
+.autocompleter-item {
+    color: #444;
+    cursor: pointer;
+    padding: 6px 12px;
+}
+
+.autocompleter-item strong {
+    color: #00B83F;
+    font-weight: 400;
+}
+
+.autocompleter-item span {
+    color: #aaa
+}
+
+.autocompleter-item:hover,
+.autocompleter-item-selected {
+    color: #fff;
+    background: #009688 !important;
+}
+
+.autocompleter-item:hover span,
+.autocompleter-item:hover strong,
+.autocompleter-item-selected span,
+.autocompleter-item-selected strong {
+    color: #fff;
+}
+
+.autocompleter-hint {
+    left: 0;
+    top: -56px;
+    width: 100%;
+    color: #ccc;
+    display: none;
+    font-size: 24px;
+    text-align: left;
+    font-weight: 400;
+    padding: 12px 12px 12px 13px;
+}
+
+.autocompleter-hint span {
+    color: transparent
+}
+
+.autocompleter-hint-show {
+    display: block
+}
+
+.autocompleter-closed {
+    display: none
+}

File diff suppressed because it is too large
+ 7 - 0
assets/lib/jquery/autocompleter.min.js


+ 1 - 0
assets/lib/jquery/base64.min.js

@@ -0,0 +1 @@
+!function(){function t(t){this.message=t}var r="undefined"!=typeof exports?exports:self,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=new Error,t.prototype.name="InvalidCharacterError",r.btoa||(r.btoa=function(r){for(var o,n,a=String(r),i=0,c=e,d="";a.charAt(0|i)||(c="=",i%1);d+=c.charAt(63&o>>8-i%1*8)){if(n=a.charCodeAt(i+=.75),n>255)throw new t("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o=o<<8|n}return d}),r.atob||(r.atob=function(r){var o=String(r).replace(/=+$/,"");if(o.length%4==1)throw new t("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,a,i=0,c=0,d="";a=o.charAt(c++);~a&&(n=i%4?64*n+a:a,i++%4)?d+=String.fromCharCode(255&n>>(-2*i&6)):0)a=e.indexOf(a);return d})}();

+ 92 - 0
assets/lib/jquery/excel.xlsx.js

@@ -0,0 +1,92 @@
+define(['xlsx'], function () {
+
+    function excel(data, filename, sheetname) {
+        this.name = sheetname || 'sheet1';
+        this.sheet = XLSX.utils.aoa_to_sheet(data);
+        if (filename.substr(-5).toLowerCase() !== '.xlsx') {
+            filename += '.xlsx';
+        }
+        openDownloadDialog(sheet2blob(this.sheet, this.name), filename);
+    }
+
+    excel.bind = function (done, filename) {
+        $('body').off('click', '[data-form-export]').on('click', '[data-form-export]', function () {
+            var form = $(this).parents('form');
+            var method = $(this).attr('data-method') || 'get';
+            var location = $(this).attr('data-form-export') || form.get(0).action || '';
+            excel.load(location, form.serialize(), done, filename, method);
+        })
+    };
+
+    excel.load = function (url, data, done, filename, method) {
+        var alldata = [];
+        var loading = $.msg.loading('正在加载 <span data-upload-page></span>,完成<span data-upload-progress>0</span>%');
+        nextPage(1, 1);
+
+        function nextPage(curPage, maxPage) {
+            if (curPage > maxPage) {
+                if (typeof done === 'function') {
+                    this.result = done(alldata);
+                    if (this.result !== false) {
+                        excel(this.result, filename || '文件下载.xlsx');
+                    } else {
+                        console.log('格式化函数返回`false`,已终止数据导出操作', alldata, this.result);
+                    }
+                } else {
+                    console.log('格式化函数未绑定,已终止数据导出操作', alldata);
+                }
+                $.msg.close(loading);
+            } else {
+                $('[data-upload-page]').html(curPage + '/' + maxPage);
+                $('[data-upload-progress]').html((curPage / maxPage * 100).toFixed(2));
+                $.form.load(url + (url.indexOf('?') > -1 ? '&' : '?') + 'output=json&page=' + curPage, data, method || 'get', function (ret) {
+                    if (ret.code) {
+                        alldata = alldata.concat(ret.data.list);
+                        return nextPage((ret.data.page.current || 1) + 1, ret.data.page.pages || 1), false;
+                    }
+                }, false);
+            }
+        }
+    }
+
+    return excel;
+
+    /*! Sheet 转下载对象 */
+    function sheet2blob(sheet, name) {
+        this.workbook = {SheetNames: [name], Sheets: {}};
+        this.workbook.Sheets[name] = sheet;
+        this.content = XLSX.write(this.workbook, {
+            type: 'binary', bookSST: false, bookType: 'xlsx',
+        });
+        return new Blob([toArrayBuffer(this.content)], {
+            type: "application/octet-stream"
+        });
+    }
+
+    /*! 字符串转 ArrayBuffer */
+    function toArrayBuffer(s) {
+        this.buff = new ArrayBuffer(s.length);
+        this.view = new Uint8Array(this.buff);
+        for (this.index = 0; this.index !== s.length; ++this.index) {
+            this.view[this.index] = s.charCodeAt(this.index) & 0xFF;
+        }
+        return this.buff;
+    }
+
+    /*! 通用的打开下载对话框方法 */
+    function openDownloadDialog(location, filename) {
+        if (typeof location == 'object' && location instanceof Blob) {
+            location = URL.createObjectURL(location);
+        }
+        this.link = document.createElement('a');
+        this.link.download = filename || Date.now() + '.xlsx';
+        this.link.href = location;
+        if (window.MouseEvent) {
+            this.event = new MouseEvent('click');
+        } else {
+            this.event = document.createEvent('MouseEvents');
+            this.event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+        }
+        this.link.dispatchEvent(this.event);
+    }
+});

File diff suppressed because it is too large
+ 0 - 0
assets/lib/jquery/json.min.js


File diff suppressed because it is too large
+ 12 - 0
assets/lib/jquery/less.min.js


File diff suppressed because it is too large
+ 8 - 0
assets/lib/jquery/masonry.min.js


File diff suppressed because it is too large
+ 0 - 0
assets/lib/jquery/md5.min.js


File diff suppressed because it is too large
+ 1 - 0
assets/lib/jquery/pace.min.js


File diff suppressed because it is too large
+ 28 - 0
assets/lib/jquery/pcasunzips.js


File diff suppressed because it is too large
+ 1 - 0
assets/lib/jquery/xlsx.min.js


+ 116 - 0
assets/lib/michat/chart.js

@@ -0,0 +1,116 @@
+(new function () {
+    this.app = angular.module("michat", []).run(callback);
+    angular.bootstrap(document.getElementById(this.app.name), [this.app.name]);
+
+    function callback($rootScope) {
+        $rootScope.text = '';
+        $rootScope.user = {};
+        $rootScope.list = [];
+
+        // 数字位数处理
+        function toNum(value, fixed) {
+            while (("" + value).length < fixed) value = '0' + value;
+            return value;
+        }
+
+        // 显示时间内容
+        $rootScope.showDatetime = function (date) {
+            var md, td, tm, my = new Date();
+            md = my.getFullYear() + '-' + toNum(my.getMonth() + 1, 2) + '-' + toNum(my.getDate(), 2);
+            td = date.getFullYear() + '-' + toNum(date.getMonth() + 1, 2) + '-' + toNum(date.getDate(), 2);
+            tm = toNum(date.getHours(), 2) + ':' + toNum(date.getMinutes(), 2) + ':' + toNum(date.getSeconds(), 2);
+            return md === td ? tm : (td + tm);
+        };
+        for (let i = 10; i <= 99; i++) $rootScope.list.push({
+            active: false,
+            headimg: 'https://demo.thinkadmin.top/upload/decb0fe26fa3f486/b3f6521bf29403c8.png',
+            username: 'nickname_a_' + i,
+            nickname: 'NickName_A_B_C' + i,
+            message: [
+                {
+                    type: 'text',
+                    float: 'left',
+                    nickname: 'Nickname_A_' + i,
+                    headimg: 'https://demo.thinkadmin.top/upload/decb0fe26fa3f486/b3f6521bf29403c8.png',
+                    content: '消息内容_1_' + i,
+                    datetime: new Date()
+                },
+                {
+                    type: 'text',
+                    float: 'right',
+                    username: 'think_admin',
+                    nickname: 'ThinkAdmin',
+                    headimg: 'https://demo.thinkadmin.top/upload/decb0fe26fa3f486/b3f6521bf29403c8.png',
+                    content: '消息内容_2_' + i,
+                    datetime: new Date()
+                },
+                {
+                    type: 'text',
+                    float: 'right',
+                    username: 'think_admin',
+                    nickname: 'ThinkAdmin',
+                    headimg: 'https://demo.thinkadmin.top/upload/decb0fe26fa3f486/b3f6521bf29403c8.png',
+                    content: '消息内容_2_' + i,
+                    datetime: new Date()
+                },
+                {
+                    type: 'text',
+                    float: 'left',
+                    username: 'nickname_a_' + i,
+                    nickname: 'Nickname_A_' + i,
+                    headimg: 'https://demo.thinkadmin.top/upload/decb0fe26fa3f486/b3f6521bf29403c8.png',
+                    content: '消息内容_2_' + i,
+                    datetime: new Date()
+                }
+            ]
+        });
+        // 移除当前用户
+        $rootScope.removeUser = function (user, temp) {
+            temp = [];
+            for (let i in $rootScope.list) {
+                if ($rootScope.list[i].username !== user.username) {
+                    temp.push($rootScope.list[i]);
+                }
+            }
+            $rootScope.list = temp;
+        };
+        // 聊天内容底部
+        $rootScope.scrollBottom = function () {
+            setTimeout(function (div) {
+                div = document.querySelector('.michat-right-list');
+                div.scrollTop = div.scrollHeight;
+            }, 10);
+        };
+        // 切换当前用户
+        $rootScope.switchUser = function (user) {
+            for (let i in $rootScope.list) {
+                if ($rootScope.list[i].username === user.username) {
+                    $rootScope.list[i].active = true;
+                    $rootScope.user = user;
+                } else {
+                    $rootScope.list[i].active = false;
+                }
+            }
+            this.scrollBottom();
+        };
+        // 回复消息内容
+        $rootScope.replyUser = function () {
+            if ($rootScope.text.length < 1) {
+                alert('请输入内容');
+            }
+            $rootScope.user.message.push({
+                type: 'text',
+                float: 'right',
+                username: 'NICKNAME_A',
+                headimg: 'https://demo.thinkadmin.top/upload/decb0fe26fa3f486/b3f6521bf29403c8.png',
+                content: $rootScope.text,
+                datetime: new Date()
+            });
+            $rootScope.text = '';
+            $rootScope.scrollBottom();
+        };
+        // 默认选择会话
+        $rootScope.switchUser($rootScope.list[2]);
+    }
+});
+

BIN
assets/lib/michat/image/bg.jpg


+ 271 - 0
assets/lib/michat/michat.css

@@ -0,0 +1,271 @@
+::-webkit-scrollbar {
+  width: 3px;
+  height: 3px;
+}
+::-webkit-scrollbar-track {
+  border-radius: 2px;
+  background: #ccc !important;
+}
+::-webkit-scrollbar-thumb {
+  border-radius: 5%;
+  background-color: #666 !important;
+}
+.michat-message-icon {
+  width: 60px;
+  height: 60px;
+  right: 50px;
+  bottom: 50px;
+  padding: 0;
+  z-index: 998;
+  position: fixed;
+  line-height: 60px;
+  border-radius: 50%;
+}
+.michat-message-icon .layui-icon {
+  color: #fff;
+  margin: 0;
+  font-size: 28px;
+}
+.michat-message-icon .michat-message-number {
+  width: 25px;
+  height: 25px;
+  font-size: 12px;
+  background: red;
+  font-weight: 400;
+  line-height: 25px;
+  border-radius: 50%;
+  position: absolute;
+  margin: -3px 5px 0 0;
+}
+.michat {
+  color: #333;
+  border: 1px solid rgba(0, 0, 0, 0.05);
+  font-family: \5FAE\8F6F\96C5\9ED1, serif;
+  background: #fff url(image/bg.jpg) no-repeat center center;
+  background-size: cover;
+}
+.michat .layui-layer-title {
+  background-color: rgba(245, 245, 245, 0.8);
+}
+.michat .layui-layer-content {
+  height: auto !important;
+  overflow: visible;
+}
+.michat-left {
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: 220px;
+  z-index: 1000;
+  overflow: hidden;
+  position: absolute;
+  background-color: rgba(220, 220, 220, 0.9);
+}
+.michat-left:hover {
+  overflow-y: auto;
+}
+.michat-left li {
+  margin: 5px;
+  cursor: pointer;
+  position: relative;
+  line-height: 40px;
+  white-space: nowrap;
+  border-radius: 3px;
+  padding: 5px 30px 5px 5px;
+}
+.michat-left li:hover {
+  background-color: #E2E2E2;
+}
+.michat-left li:hover .layui-icon {
+  display: inline-block;
+}
+.michat-left li.michat-this {
+  background-color: #F3F3F3;
+}
+.michat-left li .layui-icon {
+  top: 7px;
+  right: 5px;
+  color: #555;
+  display: none;
+  font-size: 22px;
+  position: absolute;
+}
+.michat-left li .layui-icon:hover {
+  color: #c00;
+}
+.michat-left li img {
+  width: 40px;
+  height: 40px;
+  border-radius: 10%;
+}
+.michat-left li span {
+  width: 130px;
+  font-size: 14px;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.michat-left li * {
+  font-size: 14px;
+  vertical-align: top;
+  display: inline-block;
+  *display: inline;
+  *zoom: 1;
+}
+.michat-right {
+  position: relative;
+  margin-left: 220px;
+  background-color: rgba(255, 255, 255, 0.9);
+}
+.michat-right-header {
+  height: 80px;
+  cursor: default;
+  overflow: hidden;
+  position: relative;
+}
+.michat-right-header img {
+  top: 15px;
+  left: 20px;
+  width: 50px;
+  height: 50px;
+  position: absolute;
+  border-radius: 100%;
+}
+.michat-right-header-username {
+  top: 20px;
+  left: 60px;
+  font-size: 16px;
+  position: relative;
+}
+.michat-right-list {
+  height: 300px;
+  padding: 15px 15px 5px;
+  overflow-x: hidden;
+  overflow-y: auto;
+  border-bottom: 1px solid #ccc;
+}
+.michat-right-list li {
+  position: relative;
+  font-size: 0;
+  min-height: 68px;
+  padding-left: 60px;
+  margin-bottom: 10px;
+}
+.michat-right-list-item-user {
+  left: 3px;
+  position: absolute;
+}
+.michat-right-list-item-user img {
+  width: 40px;
+  height: 40px;
+  border-radius: 100%;
+}
+.michat-right-list-item-text {
+  display: inline-block;
+  *display: inline;
+  *zoom: 1;
+  color: #333;
+  padding: 8px 15px;
+  position: relative;
+  font-size: 14px;
+  line-height: 22px;
+  border-radius: 3px;
+  vertical-align: top;
+  word-break: break-all;
+  background-color: #e2e2e2;
+}
+.michat-right-list-item-text:hover {
+  opacity: 0.9;
+}
+.michat-right-list-item-text:after {
+  top: 8px;
+  left: -16px;
+  width: 0;
+  height: 0;
+  content: '';
+  overflow: hidden;
+  position: absolute;
+  border-width: 10px;
+  border-style: solid dashed dashed;
+  border-color: transparent #e2e2e2 transparent transparent;
+}
+.michat-right-list-item-text a {
+  color: #33DF83;
+}
+.michat-right-list-item-text img {
+  max-width: 100%;
+  vertical-align: middle;
+}
+.michat-right-list-right {
+  text-align: right;
+  padding-left: 0;
+  padding-right: 60px;
+}
+.michat-right-list-right .michat-right-list-item-user {
+  left: auto;
+  right: 3px;
+}
+.michat-right-list-right .michat-right-list-item-text {
+  color: #fff;
+  text-align: left;
+  margin-left: 0;
+  background-color: #5FB878;
+}
+.michat-right-list-right .michat-right-list-item-text:after {
+  left: auto;
+  right: -16px;
+  border-color: transparent transparent transparent #5FB878;
+}
+.michat-right-list-right .michat-right-list-item-text a {
+  color: #fff;
+}
+.michat-right-footer-textarea {
+  display: block;
+  margin-left: 10px;
+}
+.michat-right-footer-textarea textarea {
+  width: 100%;
+  height: 110px;
+  border: none;
+  resize: none;
+  display: block;
+  padding: 8px 0 0;
+  overflow: auto;
+  background: 0 0;
+  line-height: 22px;
+}
+.michat-right-footer-textarea textarea:focus {
+  outline: 0;
+}
+.michat-right-footer-textarea textarea::-webkit-input-placeholder {
+  color: #ccc;
+}
+.michat-right-footer-bottom {
+  right: 10px;
+  height: 32px;
+  bottom: 10px;
+  cursor: pointer;
+  font-size: 0;
+  position: absolute;
+  line-height: 32px;
+}
+.michat-right-footer-bottom span {
+  display: inline-block;
+  *display: inline;
+  *zoom: 1;
+  color: #fff;
+  padding: 0 20px;
+  font-size: 14px;
+  margin-left: 5px;
+  line-height: 32px;
+  border-radius: 3px;
+  vertical-align: top;
+  background-color: #5FB878;
+}
+.michat-right-footer-bottom span:hover {
+  background-color: #69BC80;
+}
+.michat-right-footer-bottom span:active {
+  background-color: #59B573;
+}
+/*# sourceMappingURL=michat.css.map */

File diff suppressed because it is too large
+ 0 - 0
assets/lib/michat/michat.css.map


+ 82 - 0
assets/lib/michat/michat.js

@@ -0,0 +1,82 @@
+define(['angular', baseRoot + 'plugs/michat/mimc-min_1_0_2.js', 'css!' + baseRoot + 'plugs/michat/michat.css'], function () {
+    return new function (that) {
+        this.appid = '', this.appkey = '';
+        this.secret = '', this.account = '';
+        that = this, this.list = [], this.body = $('body');
+        // 数据网络请求
+        this.httpRequest = function (url, data) {
+            this.xhr = new XMLHttpRequest();
+            this.xhr.open('post', url, false);
+            this.xhr.setRequestHeader('content-type', 'application/json');
+            this.xhr.send(JSON.stringify(data));
+            return JSON.parse(this.xhr.response);
+        };
+        // 显示消息图标
+        this.showMessageIcon = function () {
+            that.body.append('<a class="michat-message-icon layui-btn layui-btn-normal"><i class="layui-icon">&#xe667;</i><b class="michat-message-number">0</b></a>');
+            that.body.on('click', '.michat-message-icon', function () {
+                layui.$.get(baseRoot + 'plugs/michat/template.html', function (template) {
+                    layui.layer.open({
+                        type: 1, title: false, skin: 'michat', area: ['800px', '520px'],
+                        closeBtn: true, shadeClose: false, content: template, success: function () {
+                            layui.$.getScript(baseRoot + 'plugs/michat/chart.js')
+                        }
+                    });
+                });
+            });
+        };
+        this.showMessageIcon();
+        // 给指定账号发送消息
+        this.send = function (account, payload) {
+            this.user.sendMessage(account, payload, false);
+        };
+        // SDK登录初始化
+        this.login = function () {
+            this.user = new MIMCUser(this.appid, this.account);
+            this.user.registerP2PMsgHandler(function (message) {
+                console.log("time: " + new Date(parseInt(message.getTimeStamp())));
+                console.log('load:' + message.getPayload());
+                that.list.push({
+                    type: message.getBizType || 'TEXT',
+                    text: message.getPayload(),
+                    date: new Date(parseInt(message.getTimeStamp()))
+                });
+                $('.michat-message-number').html(that.list.length);
+            });
+            this.user.registerGroupMsgHandler(function (message) {
+                console.log(message);
+            });
+            this.user.registerFetchToken(function () {
+                return that.httpRequest('https://mimc.chat.xiaomi.net/api/account/token', {
+                    appId: that.appid, appKey: that.appkey, appSecret: that.secret, appAccount: that.account
+                });
+            });
+            this.user.registerStatusChange(function (bindResult, errType, errReason, errDesc) {
+                if (bindResult) {
+                    console.log("login succeed");
+                } else {
+                    console.log("login failed.errReason=" + errReason + ",errDesc=" + errDesc + ",errType=" + errType);
+                }
+            });
+            this.user.registerServerAckHandler(function (packetId, sequence, timeStamp, errMsg) {
+                console.log(packetId, sequence, timeStamp, errMsg);
+            });
+            this.user.registerDisconnHandler(function () {
+                console.log('disconnect');
+            });
+            this.user.registerUCDismissHandler(function (topicId) {
+                console.log("uc dismiss:" + topicId);
+            });
+            this.user.registerUCJoinRespHandler(function (topicId, code, msg, context) {
+                console.log("uc join:" + topicId + ",code=" + code + ",msg=" + msg + ",context=" + context);
+            });
+            this.user.registerUCMsgHandler(function (groupMsg) {
+                console.log(groupMsg)
+            });
+            this.user.registerUCQuitRespHandler(function (topicId, code, msg, context) {
+                console.log("uc quit:" + topicId + ",code=" + code + ",msg=" + msg + ",context=" + context);
+            });
+            this.user.login();
+        }
+    };
+});

+ 321 - 0
assets/lib/michat/michat.less

@@ -0,0 +1,321 @@
+::-webkit-scrollbar {
+  width: 3px;
+  height: 3px;
+
+  &-track {
+    border-radius: 2px;
+    background: #ccc !important;
+  }
+
+  &-thumb {
+    border-radius: 5%;
+    background-color: #666 !important;
+  }
+}
+
+.michat-message-icon {
+  width: 60px;
+  height: 60px;
+  right: 50px;
+  bottom: 50px;
+  padding: 0;
+  z-index: 998;
+  position: fixed;
+  line-height: 60px;
+  border-radius: 50%;
+
+  .layui-icon {
+    color: #fff;
+    margin: 0;
+    font-size: 28px;
+  }
+
+  .michat-message-number {
+    width: 25px;
+    height: 25px;
+    font-size: 12px;
+    background: red;
+    font-weight: 400;
+    line-height: 25px;
+    border-radius: 50%;
+    position: absolute;
+    margin: -3px 5px 0 0;
+  }
+}
+
+.michat {
+  color: #333;
+  border: 1px solid rgba(0, 0, 0, 0.05);
+  font-family: \5FAE\8F6F\96C5\9ED1, serif;
+  background: #fff url(image/bg.jpg) no-repeat center center;
+  background-size: cover;
+
+  .layui-layer-title {
+    background-color: rgba(245, 245, 245, 0.8)
+  }
+
+  .layui-layer-content {
+    height: auto !important;
+    overflow: visible;
+  }
+}
+
+.michat-left {
+  &:hover {
+    overflow-y: auto
+  }
+
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: 220px;
+  z-index: 1000;
+  overflow: hidden;
+  position: absolute;
+  background-color: rgba(220, 220, 220, 0.9);
+
+  li {
+    &:hover {
+      background-color: #E2E2E2;
+
+      .layui-icon {
+        display: inline-block
+      }
+    }
+
+    &.michat-this {
+      background-color: #F3F3F3
+    }
+
+    .layui-icon {
+      top: 7px;
+      right: 5px;
+      color: #555;
+      display: none;
+      font-size: 22px;
+      position: absolute;
+
+      &:hover {
+        color: #c00
+      }
+    }
+
+    margin: 5px;
+    cursor: pointer;
+    position: relative;
+    line-height: 40px;
+    white-space: nowrap;
+    border-radius: 3px;
+    padding: 5px 30px 5px 5px;
+
+    img {
+      width: 40px;
+      height: 40px;
+      border-radius: 10%
+    }
+
+    span {
+      width: 130px;
+      font-size: 14px;
+      overflow: hidden;
+      white-space: nowrap;
+      text-overflow: ellipsis;
+    }
+
+    * {
+      font-size: 14px;
+      vertical-align: top;
+      display: inline-block;
+      *display: inline;
+      *zoom: 1;
+    }
+  }
+}
+
+.michat-right {
+  position: relative;
+  margin-left: 220px;
+  background-color: rgba(255, 255, 255, .9);
+
+  &-header {
+    height: 80px;
+    cursor: default;
+    overflow: hidden;
+    position: relative;
+
+    img {
+      top: 15px;
+      left: 20px;
+      width: 50px;
+      height: 50px;
+      position: absolute;
+      border-radius: 100%
+    }
+
+    &-username {
+      top: 20px;
+      left: 60px;
+      font-size: 16px;
+      position: relative;
+    }
+  }
+
+  &-list {
+    height: 300px;
+    padding: 15px 15px 5px;
+    overflow-x: hidden;
+    overflow-y: auto;
+    border-bottom: 1px solid #ccc;
+
+    li {
+      position: relative;
+      font-size: 0;
+      min-height: 68px;
+      padding-left: 60px;
+      margin-bottom: 10px;
+    }
+
+    &-item-user {
+      left: 3px;
+      position: absolute;
+
+      img {
+        width: 40px;
+        height: 40px;
+        border-radius: 100%
+      }
+    }
+
+    &-item-text {
+      &:hover {
+        opacity: .9
+      }
+
+      &:after {
+        top: 8px;
+        left: -16px;
+        width: 0;
+        height: 0;
+        content: '';
+        overflow: hidden;
+        position: absolute;
+        border-width: 10px;
+        border-style: solid dashed dashed;
+        border-color: transparent #e2e2e2 transparent transparent;
+      }
+
+      display: inline-block;
+      *display: inline;
+      *zoom: 1;
+      color: #333;
+      padding: 8px 15px;
+      position: relative;
+      font-size: 14px;
+      line-height: 22px;
+      border-radius: 3px;
+      vertical-align: top;
+      word-break: break-all;
+      background-color: #e2e2e2;
+
+      a {
+        color: #33DF83
+      }
+
+      img {
+        max-width: 100%;
+        vertical-align: middle
+      }
+    }
+
+    &-right {
+      text-align: right;
+      padding-left: 0;
+      padding-right: 60px;
+
+      .michat-right-list-item {
+        &-user {
+          left: auto;
+          right: 3px;
+        }
+
+        &-text {
+          &:after {
+            left: auto;
+            right: -16px;
+            border-color: transparent transparent transparent #5FB878;
+          }
+
+          color: #fff;
+          text-align: left;
+          margin-left: 0;
+          background-color: #5FB878;
+
+          a {
+            color: #fff
+          }
+        }
+      }
+    }
+  }
+
+
+  &-footer {
+    &-textarea {
+      display: block;
+      margin-left: 10px;
+
+      textarea {
+
+        &:focus {
+          outline: 0
+        }
+
+        &::-webkit-input-placeholder {
+          color: #ccc;
+        }
+
+        width: 100%;
+        height: 110px;
+        border: none;
+        resize: none;
+        display: block;
+        padding: 8px 0 0;
+        overflow: auto;
+        background: 0 0;
+        line-height: 22px;
+      }
+    }
+
+    &-bottom {
+      right: 10px;
+      height: 32px;
+      bottom: 10px;
+      cursor: pointer;
+      font-size: 0;
+      position: absolute;
+      line-height: 32px;
+
+      span {
+        &:hover {
+          background-color: #69BC80
+        }
+
+        &:active {
+          background-color: #59B573
+        }
+
+        display: inline-block;
+        *display: inline;
+        *zoom: 1;
+        color: #fff;
+        padding: 0 20px;
+        font-size: 14px;
+        margin-left: 5px;
+        line-height: 32px;
+        border-radius: 3px;
+        vertical-align: top;
+        background-color: #5FB878;
+      }
+    }
+  }
+}

+ 717 - 0
assets/lib/michat/mimc-min_1_0_2.js

@@ -0,0 +1,717 @@
+var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var f=a[e];if(b.call(c,f,e,a))return{i:e,v:f}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};
+$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,b,c,d){if(b){c=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})}};
+$jscomp.polyfill("Array.prototype.findIndex",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).i}},"es6","es3");$jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError("The 'this' value for String.prototype."+c+" must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype."+c+" must not be a regular expression");return a+""};
+$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(a){var b=$jscomp.checkStringArgs(this,null,"repeat");if(0>a||1342177279<a)throw new RangeError("Invalid count value");a|=0;for(var d="";a;)if(a&1&&(d+=b),a>>>=1)b+=b;return d}},"es6","es3");$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).v}},"es6","es3");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
+$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var a=0;return function(b){return $jscomp.SYMBOL_PREFIX+(b||"")+a++}}();
+$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var b=0;return $jscomp.iteratorPrototype(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})};
+$jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};$jscomp.makeIterator=function(a){$jscomp.initSymbolIterator();var b=a[Symbol.iterator];return b?b.call(a):$jscomp.arrayIterator(a)};$jscomp.owns=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};
+$jscomp.polyfill("WeakMap",function(a){function b(a){$jscomp.owns(a,d)||$jscomp.defineProperty(a,d,{value:{}})}function c(a){var c=Object[a];c&&(Object[a]=function(a){b(a);return c(a)})}if(function(){if(!a||!Object.seal)return!1;try{var b=Object.seal({}),c=Object.seal({}),d=new a([[b,2],[c,3]]);if(2!=d.get(b)||3!=d.get(c))return!1;d.delete(b);d.set(c,4);return!d.has(b)&&4==d.get(c)}catch(G){return!1}}())return a;var d="$jscomp_hidden_"+Math.random().toString().substring(2);c("freeze");c("preventExtensions");
+c("seal");var e=0,f=function(a){this.id_=(e+=Math.random()+1).toString();if(a){$jscomp.initSymbol();$jscomp.initSymbolIterator();a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};f.prototype.set=function(a,c){b(a);if(!$jscomp.owns(a,d))throw Error("WeakMap key fail: "+a);a[d][this.id_]=c;return this};f.prototype.get=function(a){return $jscomp.owns(a,d)?a[d][this.id_]:void 0};f.prototype.has=function(a){return $jscomp.owns(a,d)&&$jscomp.owns(a[d],this.id_)};f.prototype.delete=
+function(a){return $jscomp.owns(a,d)&&$jscomp.owns(a[d],this.id_)?delete a[d][this.id_]:!1};return f},"es6","es3");$jscomp.MapEntry=function(){};
+$jscomp.polyfill("Map",function(a){if(!$jscomp.ASSUME_NO_NATIVE_MAP&&function(){if(!a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),c=new a($jscomp.makeIterator([[b,"s"]]));if("s"!=c.get(b)||1!=c.size||c.get({x:4})||c.set({x:4},"t")!=c||2!=c.size)return!1;var d=c.entries(),e=d.next();if(e.done||e.value[0]!=b||"s"!=e.value[1])return!1;e=d.next();return e.done||4!=e.value[0].x||"t"!=e.value[1]||!d.next().done?!1:!0}catch(v){return!1}}())return a;$jscomp.initSymbol();
+$jscomp.initSymbolIterator();var b=new WeakMap,c=function(a){this.data_={};this.head_=f();this.size=0;if(a){a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};c.prototype.set=function(a,b){var c=d(this,a);c.list||(c.list=this.data_[c.id]=[]);c.entry?c.entry.value=b:(c.entry={next:this.head_,previous:this.head_.previous,head:this.head_,key:a,value:b},c.list.push(c.entry),this.head_.previous.next=c.entry,this.head_.previous=c.entry,this.size++);return this};c.prototype.delete=
+function(a){a=d(this,a);return a.entry&&a.list?(a.list.splice(a.index,1),a.list.length||delete this.data_[a.id],a.entry.previous.next=a.entry.next,a.entry.next.previous=a.entry.previous,a.entry.head=null,this.size--,!0):!1};c.prototype.clear=function(){this.data_={};this.head_=this.head_.previous=f();this.size=0};c.prototype.has=function(a){return!!d(this,a).entry};c.prototype.get=function(a){return(a=d(this,a).entry)&&a.value};c.prototype.entries=function(){return e(this,function(a){return[a.key,
+a.value]})};c.prototype.keys=function(){return e(this,function(a){return a.key})};c.prototype.values=function(){return e(this,function(a){return a.value})};c.prototype.forEach=function(a,b){for(var c=this.entries(),d;!(d=c.next()).done;)d=d.value,a.call(b,d[1],d[0],this)};c.prototype[Symbol.iterator]=c.prototype.entries;var d=function(a,c){var d=c&&typeof c;"object"==d||"function"==d?b.has(c)?d=b.get(c):(d=""+ ++g,b.set(c,d)):d="p_"+c;var e=a.data_[d];if(e&&$jscomp.owns(a.data_,d))for(a=0;a<e.length;a++){var f=
+e[a];if(c!==c&&f.key!==f.key||c===f.key)return{id:d,list:e,index:a,entry:f}}return{id:d,list:e,index:-1,entry:void 0}},e=function(a,b){var c=a.head_;return $jscomp.iteratorPrototype(function(){if(c){for(;c.head!=a.head_;)c=c.previous;for(;c.next!=c.head;)return c=c.next,{done:!1,value:b(c)};c=null}return{done:!0,value:void 0}})},f=function(){var a={};return a.previous=a.next=a.head=a},g=0;return c},"es6","es3");
+$jscomp.polyfill("Set",function(a){if(!$jscomp.ASSUME_NO_NATIVE_SET&&function(){if(!a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),d=new a($jscomp.makeIterator([b]));if(!d.has(b)||1!=d.size||d.add(b)!=d||1!=d.size||d.add({x:4})!=d||2!=d.size)return!1;var e=d.entries(),f=e.next();if(f.done||f.value[0]!=b||f.value[1]!=b)return!1;f=e.next();return f.done||f.value[0]==b||4!=f.value[0].x||f.value[1]!=f.value[0]?!1:e.next().done}catch(g){return!1}}())return a;
+$jscomp.initSymbol();$jscomp.initSymbolIterator();var b=function(a){this.map_=new Map;if(a){a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)this.add(b.value)}this.size=this.map_.size};b.prototype.add=function(a){this.map_.set(a,a);this.size=this.map_.size;return this};b.prototype.delete=function(a){a=this.map_.delete(a);this.size=this.map_.size;return a};b.prototype.clear=function(){this.map_.clear();this.size=0};b.prototype.has=function(a){return this.map_.has(a)};b.prototype.entries=function(){return this.map_.entries()};
+b.prototype.values=function(){return this.map_.values()};b.prototype.keys=b.prototype.values;b.prototype[Symbol.iterator]=b.prototype.values;b.prototype.forEach=function(a,b){var c=this;this.map_.forEach(function(d){return a.call(b,d,d,c)})};return b},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return"string"==typeof a};goog.isBoolean=function(a){return"boolean"==typeof a};
+goog.isNumber=function(a){return"number"==typeof a};goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}};
+goog.define=function(a,b){COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&void 0===goog.global.CLOSURE_UNCOMPILED_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?b=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&void 0===goog.global.CLOSURE_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(b=goog.global.CLOSURE_DEFINES[a]));goog.exportPath_(a,b)};goog.DEBUG=!0;goog.LOCALE="en";
+goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.provide=function(a){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');goog.constructNamespace_(a)};
+goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(".")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
+goog.module=function(a){if(!goog.isString(a)||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
+goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};goog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a];if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.moduleLoaderState_=null;
+goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0};
+goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={"goog.module":!0});
+goog.getObjectByName=function(a,b){a=a.split(".");b=b||goog.global;for(var c=0;c<a.length;c++)if(b=b[a[c]],!goog.isDefAndNotNull(b))return null;return b};goog.globalize=function(a,b){b=b||goog.global;for(var c in a)b[c]=a[c]};goog.addDependency=function(a,b,c,d){if(goog.DEPENDENCIES_ENABLED){var e=goog.getLoader_();e&&e.addDependency(a,b,c,d)}};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};
+goog.require=function(a){goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_&&goog.getLoader_().earlyProcessLoad(a);if(!COMPILED){if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{var c=goog.getLoader_();c?c.load(a):goog.logToConsole_("Could not load "+a+" because there is no debug loader.")}finally{goog.moduleLoaderState_=b}}return null}};goog.basePath="";
+goog.nullFunction=function(){};goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;
+goog.TRANSPILE="detect";goog.TRANSPILER="transpile.js";goog.DEBUG_LOADER="";goog.hasBadLetScoping=null;goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(b){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping};goog.workaroundSafari10EvalBug=function(a){return"(function(){"+a+"\n;})();\n"};
+goog.loadModule=function(a){var b=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:void 0,declareLegacyNamespace:!1};if(goog.isFunction(a))var c=a.call(void 0,{});else if(goog.isString(a))goog.useSafari10Workaround()&&(a=goog.workaroundSafari10EvalBug(a)),c=goog.loadModuleFromSource_.call(void 0,a);else throw Error("Invalid module definition");var d=goog.moduleLoaderState_.moduleName;if(!goog.isString(d)||!d)throw Error('Invalid module name "'+d+'"');goog.moduleLoaderState_.declareLegacyNamespace?
+goog.constructNamespace_(d,c):goog.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==typeof c&&null!=c&&Object.seal(c);goog.loadedModules_[d]=c}finally{goog.moduleLoaderState_=b}};goog.loadModuleFromSource_=function(a){eval(a);return{}};goog.normalizePath_=function(a){a=a.split("/");for(var b=0;b<a.length;)"."==a[b]?a.splice(b,1):b&&".."==a[b]&&a[b-1]&&".."!=a[b-1]?a.splice(--b,2):b++;return a.join("/")};
+goog.loadFileSync_=function(a){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(a);try{var b=new goog.global.XMLHttpRequest;b.open("get",a,!1);b.send();return 0==b.status||200==b.status?b.responseText:null}catch(c){return null}};
+goog.transpile_=function(a,b){var c=goog.global.$jscomp;c||(goog.global.$jscomp=c={});var d=c.transpile;if(!d){var e=goog.basePath+goog.TRANSPILER,f=goog.loadFileSync_(e);if(f){(function(){eval(f+"\n//# sourceURL="+e)}).call(goog.global);if(goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile;
+c=goog.global.$jscomp;d=c.transpile}}d||(d=c.transpile=function(a,b){goog.logToConsole_(b+" requires transpilation but no transpiler was found.");return a});return d(a,b)};
+goog.typeOf=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
+else if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isFunction=function(a){return"function"==goog.typeOf(a)};
+goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){null!==a&&"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;
+goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
+goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
+goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};
+goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval){if(null==goog.evalWorksForGlobals_){try{goog.global.eval("var _evalTest_ = 1;")}catch(d){}if("undefined"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(d){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=window.document,c=b.createElement("SCRIPT");c.type="text/javascript";c.defer=!1;
+c.appendChild(b.createTextNode(a));b.head.appendChild(c);b.head.removeChild(c)}}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;
+goog.getCssName=function(a,b){if("."==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+a);var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split("-");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")};d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a};a=b?a+"-"+d(b):d(a);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(a):a};
+goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.getMsg=function(a,b){b&&(a=a.replace(/\{\$([^}]+)}/g,function(a,d){return null!=b&&d in b?b[d]:a}));return a};goog.getMsgWithFallback=function(a,b){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};
+goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};
+goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!d)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_){for(var e=Array(arguments.length-1),f=1;f<arguments.length;f++)e[f-1]=arguments[f];return d.superClass_.constructor.apply(a,e)}e=Array(arguments.length-2);for(f=2;f<arguments.length;f++)e[f-2]=arguments[f];f=!1;for(var g=a.constructor;g;g=
+g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(a){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");a.call(goog.global)};COMPILED||(goog.global.COMPILED=COMPILED);
+goog.defineClass=function(a,b){var c=b.constructor,d=b.statics;c&&c!=Object.prototype.constructor||(c=function(){throw Error("cannot instantiate an interface (no constructor defined).");});c=goog.defineClass.createSealingConstructor_(c,a);a&&goog.inherits(c,a);delete b.constructor;delete b.statics;goog.defineClass.applyProperties_(c.prototype,b);null!=d&&(d instanceof Function?d(c):goog.defineClass.applyProperties_(c,d));return c};goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG;
+goog.defineClass.createSealingConstructor_=function(a,b){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return a;var c=!goog.defineClass.isUnsealable_(b),d=function(){var b=a.apply(this,arguments)||this;b[goog.UID_PROPERTY_]=b[goog.UID_PROPERTY_];this.constructor===d&&c&&Object.seal instanceof Function&&Object.seal(b);return b};return d};goog.defineClass.isUnsealable_=function(a){return a&&a.prototype&&a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+goog.defineClass.applyProperties_=function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c]);for(var d=0;d<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++)c=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d],Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])};goog.tagUnsealableClass=function(a){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)};goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";
+goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var a=window.document;return null!=a&&"write"in a},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH)&&goog.isString(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=window.document,b=a.currentScript;a=b?[b]:a.getElementsByTagName("SCRIPT");for(b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?");d=-1==d?c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=
+c.substr(0,d-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(a,b){d?c[a]=!0:b()?c[a]=!1:d=c[a]=!0}function b(a){try{return!!eval(a)}catch(g){return!1}}var c={es3:!1},d=!1,e=window.navigator&&window.navigator.userAgent?window.userAgent:"";a("es5",function(){return b("[1,].length==1")});a("es6",function(){var a=e.match(/Edge\/(\d+)(\.\d)*/i);return a&&15>Number(a[1])?!1:b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});
+a("es6-impl",function(){return!0});a("es7",function(){return b("2 ** 2 == 4")});a("es8",function(){return b("async () => 1, true")});return c},goog.Transpiler.prototype.needsTranspile=function(a){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a];throw Error("Unknown language mode: "+a);},goog.Transpiler.prototype.transpile=
+function(a,b){return goog.transpile_(a,b)},goog.transpiler_=new goog.Transpiler,goog.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}};this.oldIeWaiting_=!1;this.queuedModules_=[];this.lastNonModuleScriptIndex_=0},goog.DebugLoader.IS_OLD_IE_=!(goog.global.atob||!window.document||!window.document.all),goog.DebugLoader.prototype.earlyProcessLoad=function(a){goog.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(a)},goog.DebugLoader.prototype.load=
+function(a){var b=this.getPathFromDeps_(a);if(b){var c=function(a){if(!(a in f.written||a in f.visited)){f.visited[a]=!0;if(a in f.requires)for(var b in f.requires[a])if(!g.isProvided(b))if(b in f.nameToPath)c(f.nameToPath[b]);else throw Error("Undefined nameToPath for "+b);a in e||(e[a]=!0,d.push(a))}},d=[],e={},f=this.dependencies_,g=this;c(b);for(a=0;a<d.length;a++)b=d[a],this.dependencies_.written[b]=!0;for(a=0;a<d.length;a++)if(b=d[a]){var n=f.loadFlags[b]||{},q=n.lang||"es3";q=this.getTranspiler().needsTranspile(q);
+"goog"==n.module||q?this.importProcessedScript_(goog.basePath+b,"goog"==n.module,q):this.importScript_(goog.basePath+b)}else throw Error("Undefined script input");}else throw a="goog.require could not find: "+a,this.logToConsole(a),Error(a);},goog.DebugLoader.prototype.addDependency=function(a,b,c,d){var e;a=a.replace(/\\/g,"/");var f=this.dependencies_;d&&"boolean"!==typeof d||(d=d?{module:"goog"}:{});for(var g=0;e=b[g];g++)f.nameToPath[e]=a,f.loadFlags[a]=d;for(d=0;b=c[d];d++)a in f.requires||(f.requires[a]=
+{}),f.requires[a][b]=!0},goog.DebugLoader.prototype.importScript_=function(a,b){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.bind(this.writeScriptTag_,this))(a,b)&&(this.dependencies_.written[a]=!0)},goog.DebugLoader.prototype.importProcessedScript_=function(a,b,c){this.importScript_("",'goog.debugLoader_.retrieveAndExec_("'+a+'", '+b+", "+c+");")},goog.DebugLoader.prototype.retrieveAndExec_=function(a,b,c){if(!COMPILED){var d=a;a=this.normalizePath(a);var e=goog.global.CLOSURE_IMPORT_SCRIPT||goog.bind(this.writeScriptTag_,
+this),f=this.loadFileSync(a);if(null==f)throw Error('Load of "'+a+'" failed');c&&(f=this.getTranspiler().transpile(f,a));f=b?this.wrapModule_(a,f):f+("\n//# sourceURL="+a);goog.DebugLoader.IS_OLD_IE_&&this.oldIeWaiting_?(this.dependencies_.deferred[d]=f,this.queuedModules_.push(d)):e(a,f)}},goog.DebugLoader.prototype.wrapModule_=function(a,b){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(b+"\n//# sourceURL="+a+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+
+b+"\n;return exports});\n//# sourceURL="+a+"\n"},goog.DebugLoader.prototype.loadQueuedModules_=function(){var a=this.queuedModules_.length;if(0<a){var b=this.queuedModules_;this.queuedModules_=[];for(var c=0;c<a;c++)this.maybeProcessDeferredPath_(b[c])}this.oldIeWaiting_=!1},goog.DebugLoader.prototype.maybeProcessDeferredDep_=function(a){this.isDeferredModule_(a)&&this.allDepsAreAvailable_(a)&&(a=this.getPathFromDeps_(a),this.maybeProcessDeferredPath_(goog.basePath+a))},goog.DebugLoader.prototype.isDeferredModule_=
+function(a){var b=(a=this.getPathFromDeps_(a))&&this.dependencies_.loadFlags[a]||{},c=b.lang||"es3";return a&&("goog"==b.module||this.getTranspiler().needsTranspile(c))?goog.basePath+a in this.dependencies_.deferred:!1},goog.DebugLoader.prototype.allDepsAreAvailable_=function(a){if((a=this.getPathFromDeps_(a))&&a in this.dependencies_.requires)for(var b in this.dependencies_.requires[a])if(!this.isProvided(b)&&!this.isDeferredModule_(b))return!1;return!0},goog.DebugLoader.prototype.maybeProcessDeferredPath_=
+function(a){if(a in this.dependencies_.deferred){var b=this.dependencies_.deferred[a];delete this.dependencies_.deferred[a];goog.globalEval(b)}},goog.DebugLoader.prototype.writeScriptSrcNode_=function(a){window.document.write('<script type="text/javascript" src="'+a+'">\x3c/script>')},goog.DebugLoader.prototype.appendScriptSrcNode_=function(a){var b=window.document,c=b.createElement("script");c.type="text/javascript";c.src=a;c.defer=!1;c.async=!1;b.head.appendChild(c)},goog.DebugLoader.prototype.writeScriptTag_=
+function(a,b){if(this.inHtmlDocument()){var c=window.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==c.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}void 0===b?goog.DebugLoader.IS_OLD_IE_?(this.oldIeWaiting_=!0,b=" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, "+ ++this.lastNonModuleScriptIndex_+")' ",c.write('<script type="text/javascript" src="'+a+'"'+b+">\x3c/script>")):goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?
+this.appendScriptSrcNode_(a):this.writeScriptSrcNode_(a):c.write('<script type="text/javascript">'+this.protectScriptTag_(b)+"\x3c/script>");return!0}return!1},goog.DebugLoader.prototype.protectScriptTag_=function(a){return a.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")},goog.DebugLoader.prototype.onScriptLoad_=function(a,b){"complete"==a.readyState&&this.lastNonModuleScriptIndex_==b&&this.loadQueuedModules_();return!0},goog.DebugLoader.prototype.getPathFromDeps_=function(a){return a in this.dependencies_.nameToPath?
+this.dependencies_.nameToPath[a]:null},goog.DebugLoader.prototype.getTranspiler=function(){return goog.transpiler_},goog.DebugLoader.prototype.isProvided=function(a){return goog.isProvided_(a)},goog.DebugLoader.prototype.inHtmlDocument=function(){return goog.inHtmlDocument_()},goog.DebugLoader.prototype.logToConsole=function(a){goog.logToConsole_(a)},goog.DebugLoader.prototype.loadFileSync=function(a){return goog.loadFileSync_(a)},goog.DebugLoader.prototype.normalizePath=function(a){return goog.normalizePath_(a)},
+goog.debugLoader_=null,goog.registerDebugLoader=function(a){if(goog.debugLoader_)throw Error("Debug loader already registered!");if(!(a instanceof goog.DebugLoader))throw Error("Not a goog.DebugLoader.");goog.debugLoader_=a},goog.getLoader_=function(){if(!goog.debugLoader_&&goog.DEBUG_LOADER)throw Error("Loaded debug loader file but no loader was registered!");goog.debugLoader_||(goog.debugLoader_=new goog.DebugLoader);return goog.debugLoader_},function(){if(goog.DEBUG_LOADER){var a=new goog.DebugLoader;
+a.importScript_(goog.basePath+goog.DEBUG_LOADER)}goog.global.CLOSURE_NO_DEPS||(a=a||new goog.DebugLoader,goog.DEBUG_LOADER||goog.registerDebugLoader(a),a.importScript_(goog.basePath+"deps.js"))}());var mimc={md5:{}};
+(function(a){function b(a,b){var c=(a&65535)+(b&65535);return(a>>16)+(b>>16)+(c>>16)<<16|c&65535}function c(a,c,d,e,f,g){a=b(b(c,a),b(e,g));return b(a<<f|a>>>32-f,d)}function d(a,b,d,e,f,g,n){return c(b&d|~b&e,a,b,f,g,n)}function e(a,b,d,e,f,g,n){return c(b&e|d&~e,a,b,f,g,n)}function f(a,b,d,e,f,g,n){return c(d^(b|~e),a,b,f,g,n)}function g(a,g){a[g>>5]|=128<<g%32;a[(g+64>>>9<<4)+14]=g;var l=1732584193,m=-271733879,h=-1732584194,k=271733878;for(g=0;g<a.length;g+=16){var n=l;var q=m;var U=h;var Q=k;
+l=d(l,m,h,k,a[g],7,-680876936);k=d(k,l,m,h,a[g+1],12,-389564586);h=d(h,k,l,m,a[g+2],17,606105819);m=d(m,h,k,l,a[g+3],22,-1044525330);l=d(l,m,h,k,a[g+4],7,-176418897);k=d(k,l,m,h,a[g+5],12,1200080426);h=d(h,k,l,m,a[g+6],17,-1473231341);m=d(m,h,k,l,a[g+7],22,-45705983);l=d(l,m,h,k,a[g+8],7,1770035416);k=d(k,l,m,h,a[g+9],12,-1958414417);h=d(h,k,l,m,a[g+10],17,-42063);m=d(m,h,k,l,a[g+11],22,-1990404162);l=d(l,m,h,k,a[g+12],7,1804603682);k=d(k,l,m,h,a[g+13],12,-40341101);h=d(h,k,l,m,a[g+14],17,-1502002290);
+m=d(m,h,k,l,a[g+15],22,1236535329);l=e(l,m,h,k,a[g+1],5,-165796510);k=e(k,l,m,h,a[g+6],9,-1069501632);h=e(h,k,l,m,a[g+11],14,643717713);m=e(m,h,k,l,a[g],20,-373897302);l=e(l,m,h,k,a[g+5],5,-701558691);k=e(k,l,m,h,a[g+10],9,38016083);h=e(h,k,l,m,a[g+15],14,-660478335);m=e(m,h,k,l,a[g+4],20,-405537848);l=e(l,m,h,k,a[g+9],5,568446438);k=e(k,l,m,h,a[g+14],9,-1019803690);h=e(h,k,l,m,a[g+3],14,-187363961);m=e(m,h,k,l,a[g+8],20,1163531501);l=e(l,m,h,k,a[g+13],5,-1444681467);k=e(k,l,m,h,a[g+2],9,-51403784);
+h=e(h,k,l,m,a[g+7],14,1735328473);m=e(m,h,k,l,a[g+12],20,-1926607734);l=c(m^h^k,l,m,a[g+5],4,-378558);k=c(l^m^h,k,l,a[g+8],11,-2022574463);h=c(k^l^m,h,k,a[g+11],16,1839030562);m=c(h^k^l,m,h,a[g+14],23,-35309556);l=c(m^h^k,l,m,a[g+1],4,-1530992060);k=c(l^m^h,k,l,a[g+4],11,1272893353);h=c(k^l^m,h,k,a[g+7],16,-155497632);m=c(h^k^l,m,h,a[g+10],23,-1094730640);l=c(m^h^k,l,m,a[g+13],4,681279174);k=c(l^m^h,k,l,a[g],11,-358537222);h=c(k^l^m,h,k,a[g+3],16,-722521979);m=c(h^k^l,m,h,a[g+6],23,76029189);l=c(m^
+h^k,l,m,a[g+9],4,-640364487);k=c(l^m^h,k,l,a[g+12],11,-421815835);h=c(k^l^m,h,k,a[g+15],16,530742520);m=c(h^k^l,m,h,a[g+2],23,-995338651);l=f(l,m,h,k,a[g],6,-198630844);k=f(k,l,m,h,a[g+7],10,1126891415);h=f(h,k,l,m,a[g+14],15,-1416354905);m=f(m,h,k,l,a[g+5],21,-57434055);l=f(l,m,h,k,a[g+12],6,1700485571);k=f(k,l,m,h,a[g+3],10,-1894986606);h=f(h,k,l,m,a[g+10],15,-1051523);m=f(m,h,k,l,a[g+1],21,-2054922799);l=f(l,m,h,k,a[g+8],6,1873313359);k=f(k,l,m,h,a[g+15],10,-30611744);h=f(h,k,l,m,a[g+6],15,-1560198380);
+m=f(m,h,k,l,a[g+13],21,1309151649);l=f(l,m,h,k,a[g+4],6,-145523070);k=f(k,l,m,h,a[g+11],10,-1120210379);h=f(h,k,l,m,a[g+2],15,718787259);m=f(m,h,k,l,a[g+9],21,-343485551);l=b(l,n);m=b(m,q);h=b(h,U);k=b(k,Q)}return[l,m,h,k]}function n(a){var b,c="",d=32*a.length;for(b=0;b<d;b+=8)c+=String.fromCharCode(a[b>>5]>>>b%32&255);return c}function q(a){var b,c=[];c[(a.length>>2)-1]=void 0;for(b=0;b<c.length;b+=1)c[b]=0;var d=8*a.length;for(b=0;b<d;b+=8)c[b>>5]|=(a.charCodeAt(b/8)&255)<<b%32;return c}function G(a){return n(g(q(a),
+8*a.length))}function D(a,b){var c=q(a),d=[],e=[];d[15]=e[15]=void 0;16<c.length&&(c=g(c,8*a.length));for(a=0;16>a;a+=1)d[a]=c[a]^909522486,e[a]=c[a]^1549556828;b=g(d.concat(q(b)),512+8*b.length);return n(g(e.concat(b),640))}function v(a){var b="",c;for(c=0;c<a.length;c+=1){var d=a.charCodeAt(c);b+="0123456789abcdef".charAt(d>>>4&15)+"0123456789abcdef".charAt(d&15)}return b}function A(a,b,c){b?c?a=D(unescape(encodeURIComponent(b)),unescape(encodeURIComponent(a))):(a=D(unescape(encodeURIComponent(b)),
+unescape(encodeURIComponent(a))),a=v(a)):a=c?G(unescape(encodeURIComponent(a))):v(G(unescape(encodeURIComponent(a))));return a}"function"===typeof define&&define.amd?define(function(){return A}):"object"===typeof module&&module.exports?module.exports=A:a.md5=A})(this);var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31};jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5};
+jspb.BinaryConstants.FieldTypeToWireType=function(a){var b=jspb.BinaryConstants.FieldType,c=jspb.BinaryConstants.WireType;switch(a){case b.INT32:case b.INT64:case b.UINT32:case b.UINT64:case b.SINT32:case b.SINT64:case b.BOOL:case b.ENUM:case b.VHASH64:return c.VARINT;case b.DOUBLE:case b.FIXED64:case b.SFIXED64:case b.FHASH64:return c.FIXED64;case b.STRING:case b.MESSAGE:case b.BYTES:return c.DELIMITED;case b.FLOAT:case b.FIXED32:case b.SFIXED32:return c.FIXED32;default:return c.INVALID}};
+jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1;jspb.BinaryConstants.FLOAT32_EPS=1.401298464324817E-45;jspb.BinaryConstants.FLOAT32_MIN=1.1754943508222875E-38;jspb.BinaryConstants.FLOAT32_MAX=3.4028234663852886E38;jspb.BinaryConstants.FLOAT64_EPS=4.9E-324;jspb.BinaryConstants.FLOAT64_MIN=2.2250738585072014E-308;jspb.BinaryConstants.FLOAT64_MAX=1.7976931348623157E308;jspb.BinaryConstants.TWO_TO_20=1048576;jspb.BinaryConstants.TWO_TO_23=8388608;jspb.BinaryConstants.TWO_TO_31=2147483648;
+jspb.BinaryConstants.TWO_TO_32=4294967296;jspb.BinaryConstants.TWO_TO_52=4503599627370496;jspb.BinaryConstants.TWO_TO_63=0x7fffffffffffffff;jspb.BinaryConstants.TWO_TO_64=1.8446744073709552E19;jspb.BinaryConstants.ZERO_HASH="\x00\x00\x00\x00\x00\x00\x00\x00";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){goog.debug.Error.call(this,goog.asserts.subs_(a,b));this.messagePattern=a};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.DEFAULT_ERROR_HANDLER=function(a){throw a;};goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER;
+goog.asserts.subs_=function(a,b){a=a.split("%s");for(var c="",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");return c+a[d]};goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c){e+=": "+c;var f=d}else a&&(e+=": "+a,f=b);a=new goog.asserts.AssertionError(""+e,f||[]);goog.asserts.errorHandler_(a)};goog.asserts.setErrorHandler=function(a){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=a)};
+goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.fail=function(a,b){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1)))};
+goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(b),goog.asserts.getType_(a)],c,Array.prototype.slice.call(arguments,3));return a};goog.asserts.assertFinite=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||"number"==typeof a&&isFinite(a)||goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.asserts.getType_=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.ASSUME_NATIVE_FUNCTIONS=!1;goog.array.peek=function(a){return a[a.length-1]};goog.array.last=goog.array.peek;
+goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};
+goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.lastIndexOf.call(a,b,null==c?a.length-1:c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
+goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){var d=a.length,e=goog.isString(a)?a.split(""):a;for(--d;0<=d;--d)d in e&&b.call(c,e[d],d,a)};
+goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(""):a,n=0;n<d;n++)if(n in g){var q=g[n];b.call(c,q,n,a)&&(e[f++]=q)}return e};
+goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};
+goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(a,b,c,d){goog.asserts.assert(null!=a.length);goog.asserts.assert(null!=b);d&&(b=goog.bind(b,d));return Array.prototype.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
+goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};
+goog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};
+goog.array.findIndexRight=function(a,b,c){var d=a.length,e=goog.isString(a)?a.split(""):a;for(--d;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
+goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){b=goog.array.indexOf(a,b);var c;(c=0<=b)&&goog.array.removeAt(a,b);return c};
+goog.array.removeLast=function(a,b){b=goog.array.lastIndexOf(a,b);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAllIf=function(a,b,c){var d=0;goog.array.forEachRight(a,function(e,f){b.call(c,e,f,a)&&goog.array.removeAt(a,f)&&d++});return d};
+goog.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.join=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(goog.isArrayLike(d)){var e=a.length||0,f=d.length||0;a.length=e+f;for(var g=0;g<f;g++)a[e+g]=d[g]}else a.push(d)}};
+goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return Array.prototype.splice.apply(a,goog.array.slice(arguments,1))};goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};
+goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(a){return goog.isObject(a)?"o"+goog.getUid(a):(typeof a).charAt(0)+a};c=c||d;d={};for(var e=0,f=0;f<a.length;){var g=a[f++],n=c(g);Object.prototype.hasOwnProperty.call(d,n)||(d[n]=!0,b[e++]=g)}b.length=e};goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};
+goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,n;f<g;){var q=f+g>>1;var G=c?b.call(e,a[q],q,a):b(d,a[q]);0<G?f=q+1:(g=q,n=!G)}return n?f:~f};goog.array.sort=function(a,b){a.sort(b||goog.array.defaultCompare)};goog.array.stableSort=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(c,function(a,b){return e(a.value,b.value)||a.index-b.index});for(d=0;d<a.length;d++)a[d]=c[d].value};
+goog.array.sortByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(b(a),b(c))})};goog.array.sortObjectsByKey=function(a,b,c){goog.array.sortByKey(a,function(a){return a[b]},c)};goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};
+goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};
+goog.array.inverseDefaultCompare=function(a,b){return-goog.array.defaultCompare(a,b)};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};
+goog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);goog.isDef(g)&&(d[g]||(d[g]=[])).push(f)}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};
+goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];if(goog.isArray(d))for(var e=0;e<d.length;e+=8192){var f=goog.array.slice(d,e,e+8192);f=goog.array.flatten.apply(null,f);for(var g=0;g<f.length;g++)b.push(f[g])}else b.push(d)}return b};
+goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?Array.prototype.unshift.apply(a,a.splice(-b,b)):0>b&&Array.prototype.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=Array.prototype.splice.call(a,b,1);Array.prototype.splice.call(a,c,0,b[0])};
+goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=arguments[0].length,d=1;d<arguments.length;d++)arguments[d].length<c&&(c=arguments[d].length);for(d=0;d<c;d++){for(var e=[],f=0;f<arguments.length;f++)e.push(arguments[f][d]);b.push(e)}return b};goog.array.shuffle=function(a,b){b=b||Math.random;for(var c=a.length-1;0<c;c--){var d=Math.floor(b()*(c+1)),e=a[c];a[c]=a[d];a[d]=e}};goog.array.copyByIndex=function(a,b){var c=[];goog.array.forEach(b,function(b){c.push(a[b])});return c};
+goog.array.concatMap=function(a,b,c){return goog.array.concat.apply([],goog.array.map(a,b,c))};goog.crypt={};goog.crypt.stringToByteArray=function(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);255<e&&(b[c++]=e&255,e>>=8);b[c++]=e}return b};goog.crypt.byteArrayToString=function(a){if(8192>=a.length)return String.fromCharCode.apply(null,a);for(var b="",c=0;c<a.length;c+=8192){var d=goog.array.slice(a,c,c+8192);b+=String.fromCharCode.apply(null,d)}return b};goog.crypt.byteArrayToHex=function(a){return goog.array.map(a,function(a){a=a.toString(16);return 1<a.length?a:"0"+a}).join("")};
+goog.crypt.hexToByteArray=function(a){goog.asserts.assert(0==a.length%2,"Key string length must be multiple of 2");for(var b=[],c=0;c<a.length;c+=2)b.push(parseInt(a.substring(c,c+2),16));return b};
+goog.crypt.stringToUtf8ByteArray=function(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);128>e?b[c++]=e:(2048>e?b[c++]=e>>6|192:(55296==(e&64512)&&d+1<a.length&&56320==(a.charCodeAt(d+1)&64512)?(e=65536+((e&1023)<<10)+(a.charCodeAt(++d)&1023),b[c++]=e>>18|240,b[c++]=e>>12&63|128):b[c++]=e>>12|224,b[c++]=e>>6&63|128),b[c++]=e&63|128)}return b};
+goog.crypt.utf8ByteArrayToString=function(a){for(var b=[],c=0,d=0;c<a.length;){var e=a[c++];if(128>e)b[d++]=String.fromCharCode(e);else if(191<e&&224>e){var f=a[c++];b[d++]=String.fromCharCode((e&31)<<6|f&63)}else if(239<e&&365>e){f=a[c++];var g=a[c++],n=a[c++];e=((e&7)<<18|(f&63)<<12|(g&63)<<6|n&63)-65536;b[d++]=String.fromCharCode(55296+(e>>10));b[d++]=String.fromCharCode(56320+(e&1023))}else f=a[c++],g=a[c++],b[d++]=String.fromCharCode((e&15)<<12|(f&63)<<6|g&63)}return b.join("")};
+goog.crypt.xorByteArray=function(a,b){goog.asserts.assert(a.length==b.length,"XOR array lengths must match");for(var c=[],d=0;d<a.length;d++)c.push(a[d]^b[d]);return c};goog.string={};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};
+goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};goog.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};
+goog.string.isEmptyOrWhitespace=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptyString=function(a){return 0==a.length};goog.string.isEmpty=goog.string.isEmptyOrWhitespace;goog.string.isEmptyOrWhitespaceSafe=function(a){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))};goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe;goog.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};
+goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};
+goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};
+goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){a=String(a).toLowerCase();b=String(b).toLowerCase();return a<b?-1:a==b?0:1};
+goog.string.numberAwareCompare_=function(a,b,c){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var d=a.toLowerCase().match(c),e=b.toLowerCase().match(c),f=Math.min(d.length,e.length),g=0;g<f;g++){c=d[g];var n=e[g];if(c!=n)return a=parseInt(c,10),!isNaN(a)&&(b=parseInt(n,10),!isNaN(b)&&a-b)?a-b:c<n?-1:1}return d.length!=e.length?d.length-e.length:a<b?-1:1};goog.string.intAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\d+|\D+/g)};
+goog.string.floatAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\d+|\.\d+|\D+/g)};goog.string.numerateCompare=goog.string.floatAwareCompare;goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")};
+goog.string.htmlEscape=function(a,b){if(b)a=a.replace(goog.string.AMP_RE_,"&amp;").replace(goog.string.LT_RE_,"&lt;").replace(goog.string.GT_RE_,"&gt;").replace(goog.string.QUOT_RE_,"&quot;").replace(goog.string.SINGLE_QUOTE_RE_,"&#39;").replace(goog.string.NULL_RE_,"&#0;"),goog.string.DETECT_DOUBLE_ESCAPING&&(a=a.replace(goog.string.E_RE_,"&#101;"));else{if(!goog.string.ALL_RE_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.AMP_RE_,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.LT_RE_,
+"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.GT_RE_,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.QUOT_RE_,"&quot;"));-1!=a.indexOf("'")&&(a=a.replace(goog.string.SINGLE_QUOTE_RE_,"&#39;"));-1!=a.indexOf("\x00")&&(a=a.replace(goog.string.NULL_RE_,"&#0;"));goog.string.DETECT_DOUBLE_ESCAPING&&-1!=a.indexOf("e")&&(a=a.replace(goog.string.E_RE_,"&#101;"))}return a};goog.string.AMP_RE_=/&/g;goog.string.LT_RE_=/</g;goog.string.GT_RE_=/>/g;goog.string.QUOT_RE_=/"/g;
+goog.string.SINGLE_QUOTE_RE_=/'/g;goog.string.NULL_RE_=/\x00/g;goog.string.E_RE_=/e/g;goog.string.ALL_RE_=goog.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};
+goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"&")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
+goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};var d=b?b.createElement("div"):window.document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var e=c[a];if(e)return e;"#"==b.charAt(0)&&(b=Number("0"+b.substr(1)),isNaN(b)||(e=String.fromCharCode(b)));e||(d.innerHTML=a+" ",e=d.firstChild.nodeValue.slice(0,-1));return c[a]=e})};
+goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=c.charAt(0)||(c=Number("0"+c.substr(1)),isNaN(c))?a:String.fromCharCode(c)}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/  /g," &#160;"),b)};
+goog.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
+goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+"..."+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+"..."+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};goog.string.jsEscapeCache_={"'":"\\'"};
+goog.string.quote=function(a){a=String(a);for(var b=['"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};
+goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a.charCodeAt(0);if(31<b&&127>b)var c=a;else{if(256>b){if(c="\\x",16>b||256<b)c+="0"}else c="\\u",4096>b&&(c+="0");c+=b.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=c};goog.string.contains=function(a,b){return-1!=a.indexOf(b)};
+goog.string.caseInsensitiveContains=function(a,b){return goog.string.contains(a.toLowerCase(),b.toLowerCase())};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){return a.replace(b,"")};goog.string.removeAll=function(a,b){b=new RegExp(goog.string.regExpEscape(b),"g");return a.replace(b,"")};
+goog.string.replaceAll=function(a,b,c){b=new RegExp(goog.string.regExpEscape(b),"g");return a.replace(b,c.replace(/\$/g,"$$$$"))};goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=String.prototype.repeat?function(a,b){return a.repeat(b)}:function(a,b){return Array(b+1).join(a)};
+goog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)};
+goog.string.compareVersions=function(a,b){var c=0;a=goog.string.trim(String(a)).split(".");b=goog.string.trim(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||"",g=b[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;c=0==f[1].length?0:parseInt(f[1],10);var n=0==g[1].length?0:parseInt(g[1],10);c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==f[2].length,
+0==g[2].length)||goog.string.compareElements_(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c)>>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
+goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};
+goog.string.toTitleCase=function(a,b){b=goog.isString(b)?goog.string.regExpEscape(b):"\\s";return a.replace(new RegExp("(^"+(b?"|["+b+"]+":"")+")([a-z])","g"),function(a,b,e){return b+e.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};
+goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.string.lastComponent=function(a,b){if(b)"string"==typeof b&&(b=[b]);else return a;for(var c=-1,d=0;d<b.length;d++)if(""!=b[d]){var e=a.lastIndexOf(b[d]);e>c&&(c=e)}return-1==c?a:a.slice(c+1)};
+goog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;e<b.length+1;e++)c[e]=e;for(e=0;e<a.length;e++){d[0]=e+1;for(var f=0;f<b.length;f++)d[f+1]=Math.min(d[f]+1,c[f+1]+1,c[f]+Number(a[e]!=b[f]));for(f=0;f<c.length;f++)c[f]=d[f]}return d[b.length]};goog.labs={};goog.labs.userAgent={};goog.labs.userAgent.util={};goog.labs.userAgent.util.getNativeUserAgentString_=function(){var a=goog.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:""};goog.labs.userAgent.util.getNavigator_=function(){return window.navigator};goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_();goog.labs.userAgent.util.setUserAgent=function(a){goog.labs.userAgent.util.userAgent_=a||goog.labs.userAgent.util.getNativeUserAgentString_()};
+goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_};goog.labs.userAgent.util.matchUserAgent=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.contains(b,a)};goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.caseInsensitiveContains(b,a)};
+goog.labs.userAgent.util.extractVersionTuples=function(a){for(var b=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c};goog.labs.userAgent.platform={};goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")};goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")};goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")};goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")};
+goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()};goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")};goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")};goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")};
+goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")};
+goog.labs.userAgent.platform.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent(),b="";goog.labs.userAgent.platform.isWindows()?(b=/Windows (?:NT|Phone) ([0-9.]+)/,b=(a=b.exec(a))?a[1]:"0.0"):goog.labs.userAgent.platform.isIos()?(b=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,b=(a=b.exec(a))&&a[1].replace(/_/g,".")):goog.labs.userAgent.platform.isMacintosh()?(b=/Mac OS X ([0-9_.]+)/,b=(a=b.exec(a))?a[1].replace(/_/g,"."):"10"):goog.labs.userAgent.platform.isAndroid()?(b=/Android\s+([^\);]+)(\)|;)/,
+b=(a=b.exec(a))&&a[1]):goog.labs.userAgent.platform.isChromeOS()&&(b=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,b=(a=b.exec(a))&&a[1]);return b||""};goog.labs.userAgent.platform.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),a)};goog.object={};goog.object.is=function(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};
+goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};
+goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};goog.object.getValueByKeys=function(a,b){var c=goog.isArrayLike(b),d=c?b:arguments;for(c=c?0:1;c<d.length;c++){if(null==a)return;a=a[d[c]]}return a};goog.object.containsKey=function(a,b){return null!==a&&b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};
+goog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(null!==a&&b in a)throw Error('The object already contains the key "'+b+'"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return null!==a&&b in a?a[b]:c};
+goog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};goog.object.setWithReturnValueIfNotSet=function(a,b,c){if(b in a)return a[b];c=c();return a[b]=c};goog.object.equals=function(a,b){for(var c in a)if(!(c in b)||a[c]!==b[c])return!1;for(c in b)if(!(c in a))return!1;return!0};goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};
+goog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(goog.isFunction(a.clone))return a.clone();b="array"==b?[]:{};for(var c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+goog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};
+goog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};
+goog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};
+goog.object.getAllPropertyNames=function(a,b,c){if(!a)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(a);for(var d={};a&&(a!==Object.prototype||b)&&(a!==Function.prototype||c);){for(var e=Object.getOwnPropertyNames(a),f=0;f<e.length;f++)d[e[f]]=!0;a=Object.getPrototypeOf(a)}return goog.object.getKeys(d)};goog.labs.userAgent.browser={};goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")};goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.browser.matchEdge_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")};
+goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdge_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))};goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")};
+goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")};
+goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdge_()};goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())};
+goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_;goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_;goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdge_;goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_;goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_;goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_;goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_;
+goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_;goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_;goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")};
+goog.labs.userAgent.browser.getVersion=function(){function a(a){a=goog.array.find(a,d);return c[a]||""}var b=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(b);b=goog.labs.userAgent.util.extractVersionTuples(b);var c={};goog.array.forEach(b,function(a){c[a[0]]=a[1]});var d=goog.partial(goog.object.containsKey,c);return goog.labs.userAgent.browser.isOpera()?a(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?a(["Edge"]):
+goog.labs.userAgent.browser.isChrome()?a(["Chrome","CriOS"]):(b=b[2])&&b[1]||""};goog.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.browser.getVersion(),a)};
+goog.labs.userAgent.browser.getIEVersion_=function(a){var b=/rv: *([\d\.]*)/.exec(a);if(b&&b[1])return b[1];b="";var c=/MSIE +([\d\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==c[1])if(a&&a[1])switch(a[1]){case "4.0":b="8.0";break;case "5.0":b="9.0";break;case "6.0":b="10.0";break;case "7.0":b="11.0"}else b="7.0";else b=c[1];return b};goog.reflect={};goog.reflect.object=function(a,b){return b};goog.reflect.objectProperty=function(a,b){return a};goog.reflect.sinkValue=function(a){goog.reflect.sinkValue[" "](a);return a};goog.reflect.sinkValue[" "]=goog.nullFunction;goog.reflect.canAccessProperty=function(a,b){try{return goog.reflect.sinkValue(a[b]),!0}catch(c){}return!1};goog.reflect.cache=function(a,b,c,d){d=d?d(b):b;return Object.prototype.hasOwnProperty.call(a,d)?a[d]:a[d]=c(b)};goog.labs.userAgent.engine={};goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")};goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};
+goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()};goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()};
+goog.labs.userAgent.engine.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent();if(a){a=goog.labs.userAgent.util.extractVersionTuples(a);var b=goog.labs.userAgent.engine.getEngineTuple_(a);if(b)return"Gecko"==b[0]?goog.labs.userAgent.engine.getVersionForKey_(a,"Firefox"):b[1];a=a[0];var c;if(a&&(c=a[2])&&(c=/Trident\/([^\s;]+)/.exec(c)))return c[1]}return""};
+goog.labs.userAgent.engine.getEngineTuple_=function(a){if(!goog.labs.userAgent.engine.isEdge())return a[1];for(var b=0;b<a.length;b++){var c=a[b];if("Edge"==c[0])return c}};goog.labs.userAgent.engine.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),a)};goog.labs.userAgent.engine.getVersionForKey_=function(a,b){return(a=goog.array.find(a,function(a){return b==a[0]}))&&a[1]||""};goog.userAgent={};goog.userAgent.ASSUME_IE=!1;goog.userAgent.ASSUME_EDGE=!1;goog.userAgent.ASSUME_GECKO=!1;goog.userAgent.ASSUME_WEBKIT=!1;goog.userAgent.ASSUME_MOBILE_WEBKIT=!1;goog.userAgent.ASSUME_OPERA=!1;goog.userAgent.ASSUME_ANY_VERSION=!1;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()};
+goog.userAgent.getNavigator=function(){return window.navigator};goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera();goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE();goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge();goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE;
+goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko();goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit();goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")};goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_();goog.userAgent.SAFARI=goog.userAgent.WEBKIT;
+goog.userAgent.determinePlatform_=function(){var a=goog.userAgent.getNavigator();return a&&a.platform||""};goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=!1;goog.userAgent.ASSUME_WINDOWS=!1;goog.userAgent.ASSUME_LINUX=!1;goog.userAgent.ASSUME_X11=!1;goog.userAgent.ASSUME_ANDROID=!1;goog.userAgent.ASSUME_IPHONE=!1;goog.userAgent.ASSUME_IPAD=!1;goog.userAgent.ASSUME_IPOD=!1;
+goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD;goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh();goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows();
+goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()};goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_();goog.userAgent.isX11_=function(){var a=goog.userAgent.getNavigator();return!!a&&goog.string.contains(a.appVersion||"","X11")};goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_();
+goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid();goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone();goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod();
+goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos();goog.userAgent.determineVersion_=function(){var a="",b=goog.userAgent.getVersionRegexResult_();b&&(a=b?b[1]:"");return goog.userAgent.IE&&(b=goog.userAgent.getDocumentMode_(),null!=b&&b>parseFloat(a))?String(b):a};
+goog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(goog.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=window.document;return a?a.documentMode:void 0};
+goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,a)})};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;
+goog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){var a=window.document,b=goog.userAgent.getDocumentMode_();if(a&&goog.userAgent.IE)return b||("CSS1Compat"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5)}();goog.userAgent.product={};goog.userAgent.product.ASSUME_FIREFOX=!1;goog.userAgent.product.ASSUME_IPHONE=!1;goog.userAgent.product.ASSUME_IPAD=!1;goog.userAgent.product.ASSUME_ANDROID=!1;goog.userAgent.product.ASSUME_CHROME=!1;goog.userAgent.product.ASSUME_SAFARI=!1;
+goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI;goog.userAgent.product.OPERA=goog.userAgent.OPERA;goog.userAgent.product.IE=goog.userAgent.IE;goog.userAgent.product.EDGE=goog.userAgent.EDGE;
+goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox();goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()};goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_();
+goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser();goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome();
+goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()};goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_();goog.crypt.base64={};goog.crypt.base64.byteToCharMap_=null;goog.crypt.base64.charToByteMap_=null;goog.crypt.base64.byteToCharMapWebSafe_=null;goog.crypt.base64.ENCODED_VALS_BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.ENCODED_VALS_BASE+"+/=";goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.ENCODED_VALS_BASE+"-_.";
+goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA;goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||"function"==typeof goog.global.btoa;goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&"function"==typeof goog.global.atob;
+goog.crypt.base64.encodeByteArray=function(a,b){goog.asserts.assert(goog.isArrayLike(a),"encodeByteArray takes an array as a parameter");goog.crypt.base64.init_();b=b?goog.crypt.base64.byteToCharMapWebSafe_:goog.crypt.base64.byteToCharMap_;for(var c=[],d=0;d<a.length;d+=3){var e=a[d],f=d+1<a.length,g=f?a[d+1]:0,n=d+2<a.length,q=n?a[d+2]:0,G=e>>2;e=(e&3)<<4|g>>4;g=(g&15)<<2|q>>6;q&=63;n||(q=64,f||(g=64));c.push(b[G],b[e],b[g],b[q])}return c.join("")};
+goog.crypt.base64.encodeString=function(a,b){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!b?(console.log("btoa"),goog.global.btoa(a)):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(a),b)};goog.crypt.base64.decodeString=function(a,b){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!b)return goog.global.atob(a);var c="";goog.crypt.base64.decodeStringInternal_(a,function(a){c+=String.fromCharCode(a)});return c};
+goog.crypt.base64.decodeStringToByteArray=function(a,b){var c=[];goog.crypt.base64.decodeStringInternal_(a,function(a){c.push(a)});return c};
+goog.crypt.base64.decodeStringToUint8Array=function(a){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var b=a.length,c=0;"="===a[b-2]?c=2:"="===a[b-1]&&(c=1);var d=new Uint8Array(Math.ceil(3*b/4)-c),e=0;goog.crypt.base64.decodeStringInternal_(a,function(a){d[e++]=a});return d.subarray(0,e)};
+goog.crypt.base64.decodeStringInternal_=function(a,b){function c(b){for(;d<a.length;){var c=a.charAt(d++),e=goog.crypt.base64.charToByteMap_[c];if(null!=e)return e;if(!goog.string.isEmptyOrWhitespace(c))throw Error("Unknown base64 encoding at char: "+c);}return b}goog.crypt.base64.init_();for(var d=0;;){var e=c(-1),f=c(0),g=c(64),n=c(64);if(64===n&&-1===e)break;b(e<<2|f>>4);64!=g&&(b(f<<4&240|g>>2),64!=n&&b(g<<6&192|n))}};
+goog.crypt.base64.init_=function(){if(!goog.crypt.base64.byteToCharMap_){goog.crypt.base64.byteToCharMap_={};goog.crypt.base64.charToByteMap_={};goog.crypt.base64.byteToCharMapWebSafe_={};for(var a=0;a<goog.crypt.base64.ENCODED_VALS.length;a++)goog.crypt.base64.byteToCharMap_[a]=goog.crypt.base64.ENCODED_VALS.charAt(a),goog.crypt.base64.charToByteMap_[goog.crypt.base64.byteToCharMap_[a]]=a,goog.crypt.base64.byteToCharMapWebSafe_[a]=goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(a),a>=goog.crypt.base64.ENCODED_VALS_BASE.length&&
+(goog.crypt.base64.charToByteMap_[goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(a)]=a)}};jspb.utils={};jspb.utils.split64Low=0;jspb.utils.split64High=0;jspb.utils.splitUint64=function(a){var b=a>>>0;a=Math.floor((a-b)/jspb.BinaryConstants.TWO_TO_32)>>>0;jspb.utils.split64Low=b;jspb.utils.split64High=a};jspb.utils.splitInt64=function(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/jspb.BinaryConstants.TWO_TO_32);a>>>=0;b&&(a=~a>>>0,c=(~c>>>0)+1,4294967295<c&&(c=0,a++,4294967295<a&&(a=0)));jspb.utils.split64Low=c;jspb.utils.split64High=a};
+jspb.utils.splitZigzag64=function(a){var b=0>a;a=2*Math.abs(a);jspb.utils.splitUint64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;b&&(0==a?0==c?c=a=4294967295:(c--,a=4294967295):a--);jspb.utils.split64Low=a;jspb.utils.split64High=c};
+jspb.utils.splitFloat32=function(a){var b=0>a?1:0;a=b?-a:a;if(0===a)0<1/a?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(a))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(a>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(b<<31|2139095040)>>>0;else if(a<jspb.BinaryConstants.FLOAT32_MIN)a=Math.round(a/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(b<<31|
+a)>>>0;else{var c=Math.floor(Math.log(a)/Math.LN2);a*=Math.pow(2,-c);a=Math.round(a*jspb.BinaryConstants.TWO_TO_23)&8388607;jspb.utils.split64High=0;jspb.utils.split64Low=(b<<31|c+127<<23|a)>>>0}};
+jspb.utils.splitFloat64=function(a){var b=0>a?1:0;a=b?-a:a;if(0===a)jspb.utils.split64High=0<1/a?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(a))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(a>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(b<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(a<jspb.BinaryConstants.FLOAT64_MIN){var c=a/Math.pow(2,-1074);a=c/jspb.BinaryConstants.TWO_TO_32;jspb.utils.split64High=(b<<31|a)>>>0;jspb.utils.split64Low=c>>>0}else{var d=
+Math.floor(Math.log(a)/Math.LN2);1024==d&&(d=1023);c=a*Math.pow(2,-d);a=c*jspb.BinaryConstants.TWO_TO_20&1048575;c=c*jspb.BinaryConstants.TWO_TO_52>>>0;jspb.utils.split64High=(b<<31|d+1023<<20|a)>>>0;jspb.utils.split64Low=c}};
+jspb.utils.splitHash64=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=a.charCodeAt(4),g=a.charCodeAt(5),n=a.charCodeAt(6);a=a.charCodeAt(7);jspb.utils.split64Low=b+(c<<8)+(d<<16)+(e<<24)>>>0;jspb.utils.split64High=f+(g<<8)+(n<<16)+(a<<24)>>>0};jspb.utils.joinUint64=function(a,b){return b*jspb.BinaryConstants.TWO_TO_32+a};
+jspb.utils.joinInt64=function(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,0==a&&(b=b+1>>>0));a=jspb.utils.joinUint64(a,b);return c?-a:a};jspb.utils.joinZigzag64=function(a,b){var c=a&1;a=(a>>>1|b<<31)>>>0;b>>>=1;c&&(a=a+1>>>0,0==a&&(b=b+1>>>0));a=jspb.utils.joinUint64(a,b);return c?-a:a};jspb.utils.joinFloat32=function(a,b){b=2*(a>>31)+1;var c=a>>>23&255;a&=8388607;return 255==c?a?NaN:Infinity*b:0==c?b*Math.pow(2,-149)*a:b*Math.pow(2,c-150)*(a+Math.pow(2,23))};
+jspb.utils.joinFloat64=function(a,b){var c=2*(b>>31)+1,d=b>>>20&2047;a=jspb.BinaryConstants.TWO_TO_32*(b&1048575)+a;return 2047==d?a?NaN:Infinity*c:0==d?c*Math.pow(2,-1074)*a:c*Math.pow(2,d-1075)*(a+jspb.BinaryConstants.TWO_TO_52)};jspb.utils.joinHash64=function(a,b){return String.fromCharCode(a>>>0&255,a>>>8&255,a>>>16&255,a>>>24&255,b>>>0&255,b>>>8&255,b>>>16&255,b>>>24&255)};jspb.utils.DIGITS="0123456789abcdef".split("");
+jspb.utils.joinUnsignedDecimalString=function(a,b){function c(a){for(var b=1E7,c=0;7>c;c++){b/=10;var d=a/b%10>>>0;if(0!=d||f)f=!0,g+=e[d]}}if(2097151>=b)return""+(jspb.BinaryConstants.TWO_TO_32*b+a);var d=(a>>>24|b<<8)>>>0&16777215;b=b>>16&65535;a=(a&16777215)+6777216*d+6710656*b;d+=8147497*b;b*=2;1E7<=a&&(d+=Math.floor(a/1E7),a%=1E7);1E7<=d&&(b+=Math.floor(d/1E7),d%=1E7);var e=jspb.utils.DIGITS,f=!1,g="";(b||f)&&c(b);(d||f)&&c(d);(a||f)&&c(a);return g};
+jspb.utils.joinSignedDecimalString=function(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b+(0==a?1:0)>>>0);a=jspb.utils.joinUnsignedDecimalString(a,b);return c?"-"+a:a};jspb.utils.hash64ToDecimalString=function(a,b){jspb.utils.splitHash64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;return b?jspb.utils.joinSignedDecimalString(a,c):jspb.utils.joinUnsignedDecimalString(a,c)};
+jspb.utils.hash64ArrayToDecimalStrings=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=jspb.utils.hash64ToDecimalString(a[d],b);return c};jspb.utils.decimalStringToHash64=function(a){function b(a,b){for(var c=0;8>c&&(1!==a||0<b);c++)b=a*e[c]+b,e[c]=b&255,b>>>=8}function c(){for(var a=0;8>a;a++)e[a]=~e[a]&255}goog.asserts.assert(0<a.length);var d=!1;"-"===a[0]&&(d=!0,a=a.slice(1));for(var e=[0,0,0,0,0,0,0,0],f=0;f<a.length;f++)b(10,jspb.utils.DIGITS.indexOf(a[f]));d&&(c(),b(1,1));return goog.crypt.byteArrayToString(e)};
+jspb.utils.splitDecimalString=function(a){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a))};jspb.utils.hash64ToHexString=function(a){var b=Array(18);b[0]="0";b[1]="x";for(var c=0;8>c;c++){var d=a.charCodeAt(7-c);b[2*c+2]=jspb.utils.DIGITS[d>>4];b[2*c+3]=jspb.utils.DIGITS[d&15]}return b.join("")};
+jspb.utils.hexStringToHash64=function(a){a=a.toLowerCase();goog.asserts.assert(18==a.length);goog.asserts.assert("0"==a[0]);goog.asserts.assert("x"==a[1]);for(var b="",c=0;8>c;c++){var d=jspb.utils.DIGITS.indexOf(a[2*c+2]),e=jspb.utils.DIGITS.indexOf(a[2*c+3]);b=String.fromCharCode(16*d+e)+b}return b};jspb.utils.hash64ToNumber=function(a,b){jspb.utils.splitHash64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;return b?jspb.utils.joinInt64(a,c):jspb.utils.joinUint64(a,c)};
+jspb.utils.numberToHash64=function(a){jspb.utils.splitInt64(a);return jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)};jspb.utils.countVarints=function(a,b,c){for(var d=0,e=b;e<c;e++)d+=a[e]>>7;return c-b-d};
+jspb.utils.countVarintFields=function(a,b,c,d){var e=0;d=8*d+jspb.BinaryConstants.WireType.VARINT;if(128>d)for(;b<c&&a[b++]==d;)for(e++;;){var f=a[b++];if(0==(f&128))break}else for(;b<c;){for(f=d;128<f;){if(a[b]!=(f&127|128))return e;b++;f>>=7}if(a[b++]!=f)break;for(e++;f=a[b++],0!=(f&128););}return e};jspb.utils.countFixedFields_=function(a,b,c,d,e){var f=0;if(128>d)for(;b<c&&a[b++]==d;)f++,b+=e;else for(;b<c;){for(var g=d;128<g;){if(a[b++]!=(g&127|128))return f;g>>=7}if(a[b++]!=g)break;f++;b+=e}return f};
+jspb.utils.countFixed32Fields=function(a,b,c,d){return jspb.utils.countFixedFields_(a,b,c,8*d+jspb.BinaryConstants.WireType.FIXED32,4)};jspb.utils.countFixed64Fields=function(a,b,c,d){return jspb.utils.countFixedFields_(a,b,c,8*d+jspb.BinaryConstants.WireType.FIXED64,8)};
+jspb.utils.countDelimitedFields=function(a,b,c,d){var e=0;for(d=8*d+jspb.BinaryConstants.WireType.DELIMITED;b<c;){for(var f=d;128<f;){if(a[b++]!=(f&127|128))return e;f>>=7}if(a[b++]!=f)break;e++;for(var g=0,n=1;f=a[b++],g+=(f&127)*n,n*=128,0!=(f&128););b+=g}return e};jspb.utils.debugBytesToTextFormat=function(a){var b='"';if(a){a=jspb.utils.byteSourceToUint8Array(a);for(var c=0;c<a.length;c++)b+="\\x",16>a[c]&&(b+="0"),b+=a[c].toString(16)}return b+'"'};
+jspb.utils.debugScalarToTextFormat=function(a){return goog.isString(a)?goog.string.quote(a):a.toString()};jspb.utils.stringToByteArray=function(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;c++){var d=a.charCodeAt(c);if(255<d)throw Error("Conversion error: string contains codepoint outside of byte range");b[c]=d}return b};
+jspb.utils.byteSourceToUint8Array=function(a){if(a.constructor===Uint8Array)return a;if(a.constructor===ArrayBuffer||a.constructor===Array)return new Uint8Array(a);if(a.constructor===String)return goog.crypt.base64.decodeStringToUint8Array(a);goog.asserts.fail("Type not convertible to Uint8Array.");return new Uint8Array(0)};jspb.BinaryIterator=function(a,b,c){this.elements_=this.nextMethod_=this.decoder_=null;this.cursor_=0;this.nextValue_=null;this.atEnd_=!0;this.init_(a,b,c)};jspb.BinaryIterator.prototype.init_=function(a,b,c){a&&b&&(this.decoder_=a,this.nextMethod_=b);this.elements_=c||null;this.cursor_=0;this.nextValue_=null;this.atEnd_=!this.decoder_&&!this.elements_;this.next()};jspb.BinaryIterator.instanceCache_=[];
+jspb.BinaryIterator.alloc=function(a,b,c){if(jspb.BinaryIterator.instanceCache_.length){var d=jspb.BinaryIterator.instanceCache_.pop();d.init_(a,b,c);return d}return new jspb.BinaryIterator(a,b,c)};jspb.BinaryIterator.prototype.free=function(){this.clear();100>jspb.BinaryIterator.instanceCache_.length&&jspb.BinaryIterator.instanceCache_.push(this)};
+jspb.BinaryIterator.prototype.clear=function(){this.decoder_&&this.decoder_.free();this.elements_=this.nextMethod_=this.decoder_=null;this.cursor_=0;this.nextValue_=null;this.atEnd_=!0};jspb.BinaryIterator.prototype.get=function(){return this.nextValue_};jspb.BinaryIterator.prototype.atEnd=function(){return this.atEnd_};
+jspb.BinaryIterator.prototype.next=function(){var a=this.nextValue_;this.decoder_?this.decoder_.atEnd()?(this.nextValue_=null,this.atEnd_=!0):this.nextValue_=this.nextMethod_.call(this.decoder_):this.elements_&&(this.cursor_==this.elements_.length?(this.nextValue_=null,this.atEnd_=!0):this.nextValue_=this.elements_[this.cursor_++]);return a};jspb.BinaryDecoder=function(a,b,c){this.bytes_=null;this.tempHigh_=this.tempLow_=this.cursor_=this.end_=this.start_=0;this.error_=!1;a&&this.setBlock(a,b,c)};
+jspb.BinaryDecoder.instanceCache_=[];jspb.BinaryDecoder.alloc=function(a,b,c){if(jspb.BinaryDecoder.instanceCache_.length){var d=jspb.BinaryDecoder.instanceCache_.pop();a&&d.setBlock(a,b,c);return d}return new jspb.BinaryDecoder(a,b,c)};jspb.BinaryDecoder.prototype.free=function(){this.clear();100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)};jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)};
+jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null;this.cursor_=this.end_=this.start_=0;this.error_=!1};jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_};jspb.BinaryDecoder.prototype.setBlock=function(a,b,c){this.bytes_=jspb.utils.byteSourceToUint8Array(a);this.start_=goog.isDef(b)?b:0;this.end_=goog.isDef(c)?this.start_+c:this.bytes_.length;this.cursor_=this.start_};jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_};
+jspb.BinaryDecoder.prototype.setEnd=function(a){this.end_=a};jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_};jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_};jspb.BinaryDecoder.prototype.setCursor=function(a){this.cursor_=a};jspb.BinaryDecoder.prototype.advance=function(a){this.cursor_+=a;goog.asserts.assert(this.cursor_<=this.end_)};jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_};
+jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_};jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_};
+jspb.BinaryDecoder.prototype.readSplitVarint64_=function(){for(var a,b=0,c,d=0;4>d;d++)if(a=this.bytes_[this.cursor_++],b|=(a&127)<<7*d,128>a){this.tempLow_=b>>>0;this.tempHigh_=0;return}a=this.bytes_[this.cursor_++];b|=(a&127)<<28;c=0|(a&127)>>4;if(128>a)this.tempLow_=b>>>0,this.tempHigh_=c>>>0;else{for(d=0;5>d;d++)if(a=this.bytes_[this.cursor_++],c|=(a&127)<<7*d+3,128>a){this.tempLow_=b>>>0;this.tempHigh_=c>>>0;return}goog.asserts.fail("Failed to read varint, encoding is invalid.");this.error_=
+!0}};jspb.BinaryDecoder.prototype.skipVarint=function(){for(;this.bytes_[this.cursor_]&128;)this.cursor_++;this.cursor_++};jspb.BinaryDecoder.prototype.unskipVarint=function(a){for(;128<a;)this.cursor_--,a>>>=7;this.cursor_--};
+jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var a=this.bytes_;var b=a[this.cursor_+0];var c=b&127;if(128>b)return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+1];c|=(b&127)<<7;if(128>b)return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+2];c|=(b&127)<<14;if(128>b)return this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+3];c|=(b&127)<<21;if(128>b)return this.cursor_+=4,goog.asserts.assert(this.cursor_<=
+this.end_),c;b=a[this.cursor_+4];c|=(b&15)<<28;if(128>b)return this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),c>>>0;this.cursor_+=5;128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&goog.asserts.assert(!1);goog.asserts.assert(this.cursor_<=this.end_);return c};jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32;jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()};
+jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()};jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var a=this.readUnsignedVarint32();return a>>>1^-(a&1)};jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){this.readSplitVarint64_();return jspb.utils.joinUint64(this.tempLow_,this.tempHigh_)};
+jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){this.readSplitVarint64_();return jspb.utils.joinUnsignedDecimalString(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readSignedVarint64=function(){this.readSplitVarint64_();return jspb.utils.joinInt64(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){this.readSplitVarint64_();return jspb.utils.joinSignedDecimalString(this.tempLow_,this.tempHigh_)};
+jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){this.readSplitVarint64_();return jspb.utils.joinZigzag64(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readZigzagVarint64().toString()};jspb.BinaryDecoder.prototype.readUint8=function(){var a=this.bytes_[this.cursor_+0];this.cursor_+=1;goog.asserts.assert(this.cursor_<=this.end_);return a};
+jspb.BinaryDecoder.prototype.readUint16=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1];this.cursor_+=2;goog.asserts.assert(this.cursor_<=this.end_);return a<<0|b<<8};jspb.BinaryDecoder.prototype.readUint32=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1],c=this.bytes_[this.cursor_+2],d=this.bytes_[this.cursor_+3];this.cursor_+=4;goog.asserts.assert(this.cursor_<=this.end_);return(a<<0|b<<8|c<<16|d<<24)>>>0};
+jspb.BinaryDecoder.prototype.readUint64=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinUint64(a,b)};jspb.BinaryDecoder.prototype.readUint64String=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinUnsignedDecimalString(a,b)};jspb.BinaryDecoder.prototype.readInt8=function(){var a=this.bytes_[this.cursor_+0];this.cursor_+=1;goog.asserts.assert(this.cursor_<=this.end_);return a<<24>>24};
+jspb.BinaryDecoder.prototype.readInt16=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1];this.cursor_+=2;goog.asserts.assert(this.cursor_<=this.end_);return(a<<0|b<<8)<<16>>16};jspb.BinaryDecoder.prototype.readInt32=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1],c=this.bytes_[this.cursor_+2],d=this.bytes_[this.cursor_+3];this.cursor_+=4;goog.asserts.assert(this.cursor_<=this.end_);return a<<0|b<<8|c<<16|d<<24};
+jspb.BinaryDecoder.prototype.readInt64=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinInt64(a,b)};jspb.BinaryDecoder.prototype.readInt64String=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinSignedDecimalString(a,b)};jspb.BinaryDecoder.prototype.readFloat=function(){var a=this.readUint32();return jspb.utils.joinFloat32(a,0)};
+jspb.BinaryDecoder.prototype.readDouble=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinFloat64(a,b)};jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]};jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()};
+jspb.BinaryDecoder.prototype.readString=function(a){var b=this.bytes_,c=this.cursor_;a=c+a;for(var d=[],e="";c<a;){var f=b[c++];if(128>f)d.push(f);else if(192>f)continue;else if(224>f){var g=b[c++];d.push((f&31)<<6|g&63)}else if(240>f){g=b[c++];var n=b[c++];d.push((f&15)<<12|(g&63)<<6|n&63)}else if(248>f){g=b[c++];n=b[c++];var q=b[c++];f=(f&7)<<18|(g&63)<<12|(n&63)<<6|q&63;f-=65536;d.push((f>>10&1023)+55296,(f&1023)+56320)}8192<=d.length&&(e+=String.fromCharCode.apply(null,d),d.length=0)}e+=goog.crypt.byteArrayToString(d);
+this.cursor_=c;return e};jspb.BinaryDecoder.prototype.readStringWithLength=function(){var a=this.readUnsignedVarint32();return this.readString(a)};jspb.BinaryDecoder.prototype.readBytes=function(a){if(0>a||this.cursor_+a>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var b=this.bytes_.subarray(this.cursor_,this.cursor_+a);this.cursor_+=a;goog.asserts.assert(this.cursor_<=this.end_);return b};
+jspb.BinaryDecoder.prototype.readVarintHash64=function(){this.readSplitVarint64_();return jspb.utils.joinHash64(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readFixedHash64=function(){var a=this.bytes_,b=this.cursor_,c=a[b+0],d=a[b+1],e=a[b+2],f=a[b+3],g=a[b+4],n=a[b+5],q=a[b+6];a=a[b+7];this.cursor_+=8;return String.fromCharCode(c,d,e,f,g,n,q,a)};jspb.BinaryReader=function(a,b,c){this.decoder_=jspb.BinaryDecoder.alloc(a,b,c);this.fieldCursor_=this.decoder_.getCursor();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID;this.error_=!1;this.readCallbacks_=null};jspb.BinaryReader.instanceCache_=[];
+jspb.BinaryReader.alloc=function(a,b,c){if(jspb.BinaryReader.instanceCache_.length){var d=jspb.BinaryReader.instanceCache_.pop();a&&d.decoder_.setBlock(a,b,c);return d}return new jspb.BinaryReader(a,b,c)};jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc;
+jspb.BinaryReader.prototype.free=function(){this.decoder_.clear();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID;this.error_=!1;this.readCallbacks_=null;100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)};jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_};jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()};
+jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()};jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_};jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_};jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP};jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()};
+jspb.BinaryReader.prototype.setBlock=function(a,b,c){this.decoder_.setBlock(a,b,c);this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID};jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID};jspb.BinaryReader.prototype.advance=function(a){this.decoder_.advance(a)};
+jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var a=this.decoder_.readUnsignedVarint32(),b=a>>>3;a&=7;if(a!=jspb.BinaryConstants.WireType.VARINT&&a!=jspb.BinaryConstants.WireType.FIXED32&&a!=jspb.BinaryConstants.WireType.FIXED64&&a!=jspb.BinaryConstants.WireType.DELIMITED&&a!=jspb.BinaryConstants.WireType.START_GROUP&&a!=jspb.BinaryConstants.WireType.END_GROUP)return goog.asserts.fail("Invalid wire type"),
+this.error_=!0,!1;this.nextField_=b;this.nextWireType_=a;return!0};jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)};jspb.BinaryReader.prototype.skipMatchingFields=function(){var a=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==a;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()};
+jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()};jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var a=this.decoder_.readUnsignedVarint32();this.decoder_.advance(a)}};
+jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)};jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)};
+jspb.BinaryReader.prototype.skipGroup=function(){var a=[this.nextField_];do{if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF");this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP)a.push(this.nextField_);else if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP&&this.nextField_!=a.pop()){goog.asserts.fail("Unmatched end-group tag");this.error_=!0;break}}while(0<a.length)};
+jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}};
+jspb.BinaryReader.prototype.registerReadCallback=function(a,b){goog.isNull(this.readCallbacks_)&&(this.readCallbacks_={});goog.asserts.assert(!this.readCallbacks_[a]);this.readCallbacks_[a]=b};jspb.BinaryReader.prototype.runReadCallback=function(a){goog.asserts.assert(!goog.isNull(this.readCallbacks_));a=this.readCallbacks_[a];goog.asserts.assert(a);return a(this)};
+jspb.BinaryReader.prototype.readAny=function(a){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(a);var b=jspb.BinaryConstants.FieldType;switch(a){case b.DOUBLE:return this.readDouble();case b.FLOAT:return this.readFloat();case b.INT64:return this.readInt64();case b.UINT64:return this.readUint64();case b.INT32:return this.readInt32();case b.FIXED64:return this.readFixed64();case b.FIXED32:return this.readFixed32();case b.BOOL:return this.readBool();case b.STRING:return this.readString();
+case b.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case b.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case b.BYTES:return this.readBytes();case b.UINT32:return this.readUint32();case b.ENUM:return this.readEnum();case b.SFIXED32:return this.readSfixed32();case b.SFIXED64:return this.readSfixed64();case b.SINT32:return this.readSint32();case b.SINT64:return this.readSint64();case b.FHASH64:return this.readFixedHash64();case b.VHASH64:return this.readVarintHash64();
+default:goog.asserts.fail("Invalid field type in readAny()")}return 0};jspb.BinaryReader.prototype.readMessage=function(a,b){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var c=this.decoder_.getEnd(),d=this.decoder_.readUnsignedVarint32();d=this.decoder_.getCursor()+d;this.decoder_.setEnd(d);b(a,this);this.decoder_.setCursor(d);this.decoder_.setEnd(c)};
+jspb.BinaryReader.prototype.readGroup=function(a,b,c){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP);goog.asserts.assert(this.nextField_==a);c(b,this);this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)};
+jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32(),b=this.decoder_.getCursor(),c=b+a;a=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),b,a);this.decoder_.setCursor(c);return a};jspb.BinaryReader.prototype.readInt32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint32()};
+jspb.BinaryReader.prototype.readInt32String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint32String()};jspb.BinaryReader.prototype.readInt64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64()};jspb.BinaryReader.prototype.readInt64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64String()};
+jspb.BinaryReader.prototype.readUint32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint32()};jspb.BinaryReader.prototype.readUint32String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint32String()};jspb.BinaryReader.prototype.readUint64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint64()};
+jspb.BinaryReader.prototype.readUint64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint64String()};jspb.BinaryReader.prototype.readSint32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint32()};jspb.BinaryReader.prototype.readSint64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint64()};
+jspb.BinaryReader.prototype.readSint64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint64String()};jspb.BinaryReader.prototype.readFixed32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readUint32()};jspb.BinaryReader.prototype.readFixed64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readUint64()};
+jspb.BinaryReader.prototype.readFixed64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readUint64String()};jspb.BinaryReader.prototype.readSfixed32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readInt32()};jspb.BinaryReader.prototype.readSfixed32String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readInt32().toString()};
+jspb.BinaryReader.prototype.readSfixed64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readInt64()};jspb.BinaryReader.prototype.readSfixed64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readInt64String()};jspb.BinaryReader.prototype.readFloat=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readFloat()};
+jspb.BinaryReader.prototype.readDouble=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readDouble()};jspb.BinaryReader.prototype.readBool=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return!!this.decoder_.readUnsignedVarint32()};jspb.BinaryReader.prototype.readEnum=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64()};
+jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(a)};jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(a)};
+jspb.BinaryReader.prototype.readVarintHash64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readVarintHash64()};jspb.BinaryReader.prototype.readFixedHash64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readFixedHash64()};
+jspb.BinaryReader.prototype.readPackedField_=function(a){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var b=this.decoder_.readUnsignedVarint32();b=this.decoder_.getCursor()+b;for(var c=[];this.decoder_.getCursor()<b;)c.push(a.call(this.decoder_));return c};jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)};jspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)};
+jspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)};jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)};jspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)};jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)};
+jspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)};jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)};jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)};jspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)};
+jspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)};jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)};jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)};jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)};
+jspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)};jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)};jspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)};jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)};
+jspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)};jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)};jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)};jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)};
+jspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)};jspb.Map=function(a,b){this.arr_=a;this.valueCtor_=b;this.map_={};this.arrClean=!0;0<this.arr_.length&&this.loadFromArray_()};jspb.Map.prototype.loadFromArray_=function(){for(var a=0;a<this.arr_.length;a++){var b=this.arr_[a],c=b[0];this.map_[c.toString()]=new jspb.Map.Entry_(c,b[1])}this.arrClean=!0};
+jspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var a=this.map_,b;for(b in a)if(Object.prototype.hasOwnProperty.call(a,b)){var c=a[b].valueWrapper;c&&c.toArray()}}}else{this.arr_.length=0;a=this.stringKeys_();a.sort();for(b=0;b<a.length;b++){var d=this.map_[a[b]];(c=d.valueWrapper)&&c.toArray();this.arr_.push([d.key,d.value])}this.arrClean=!0}return this.arr_};
+jspb.Map.prototype.toObject=function(a,b){for(var c=this.toArray(),d=[],e=0;e<c.length;e++){var f=this.map_[c[e][0].toString()];this.wrapEntry_(f);var g=f.valueWrapper;g?(goog.asserts.assert(b),d.push([f.key,b(a,g)])):d.push([f.key,f.value])}return d};jspb.Map.fromObject=function(a,b,c){b=new jspb.Map([],b);for(var d=0;d<a.length;d++){var e=a[d][0],f=c(a[d][1]);b.set(e,f)}return b};jspb.Map.ArrayIteratorIterable_=function(a){this.idx_=0;this.arr_=a};
+jspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}};"undefined"!=typeof Symbol&&(jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this});jspb.Map.prototype.getLength=function(){return this.stringKeys_().length};jspb.Map.prototype.clear=function(){this.map_={};this.arrClean=!1};
+jspb.Map.prototype.del=function(a){a=a.toString();var b=this.map_.hasOwnProperty(a);delete this.map_[a];this.arrClean=!1;return b};jspb.Map.prototype.getEntryList=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++){var d=this.map_[b[c]];a.push([d.key,d.value])}return a};jspb.Map.prototype.entries=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++){var d=this.map_[b[c]];a.push([d.key,this.wrapEntry_(d)])}return new jspb.Map.ArrayIteratorIterable_(a)};
+jspb.Map.prototype.keys=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++)a.push(this.map_[b[c]].key);return new jspb.Map.ArrayIteratorIterable_(a)};jspb.Map.prototype.values=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++)a.push(this.wrapEntry_(this.map_[b[c]]));return new jspb.Map.ArrayIteratorIterable_(a)};
+jspb.Map.prototype.forEach=function(a,b){var c=this.stringKeys_();c.sort();for(var d=0;d<c.length;d++){var e=this.map_[c[d]];a.call(b,this.wrapEntry_(e),e.key,this)}};jspb.Map.prototype.set=function(a,b){var c=new jspb.Map.Entry_(a);this.valueCtor_?(c.valueWrapper=b,c.value=b.toArray()):c.value=b;this.map_[a.toString()]=c;this.arrClean=!1;return this};jspb.Map.prototype.wrapEntry_=function(a){return this.valueCtor_?(a.valueWrapper||(a.valueWrapper=new this.valueCtor_(a.value)),a.valueWrapper):a.value};
+jspb.Map.prototype.get=function(a){if(a=this.map_[a.toString()])return this.wrapEntry_(a)};jspb.Map.prototype.has=function(a){return a.toString()in this.map_};jspb.Map.prototype.serializeBinary=function(a,b,c,d,e){var f=this.stringKeys_();f.sort();for(var g=0;g<f.length;g++){var n=this.map_[f[g]];b.beginSubMessage(a);c.call(b,1,n.key);this.valueCtor_?d.call(b,2,this.wrapEntry_(n),e):d.call(b,2,n.value);b.endSubMessage()}};
+jspb.Map.deserializeBinary=function(a,b,c,d,e){for(var f=void 0,g=void 0;b.nextField()&&!b.isEndGroup();){var n=b.getFieldNumber();1==n?f=c.call(b):2==n&&(a.valueCtor_?(g=new a.valueCtor_,d.call(b,g,e)):g=d.call(b))}goog.asserts.assert(void 0!=f);goog.asserts.assert(void 0!=g);a.set(f,g)};jspb.Map.prototype.stringKeys_=function(){var a=this.map_,b=[],c;for(c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);return b};
+jspb.Map.Entry_=function(a,b){this.key=a;this.value=b;this.valueWrapper=void 0};jspb.ExtensionFieldInfo=function(a,b,c,d,e){this.fieldIndex=a;this.fieldName=b;this.ctor=c;this.toObjectFn=d;this.isRepeated=e};jspb.ExtensionFieldBinaryInfo=function(a,b,c,d,e,f){this.fieldInfo=a;this.binaryReaderFn=b;this.binaryWriterFn=c;this.binaryMessageSerializeFn=d;this.binaryMessageDeserializeFn=e;this.isPacked=f};jspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor};jspb.Message=function(){};jspb.Message.GENERATE_TO_OBJECT=!0;jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE;
+jspb.Message.GENERATE_TO_STRING=!0;jspb.Message.ASSUME_LOCAL_ARRAYS=!1;jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS=COMPILED;jspb.Message.SUPPORTS_UINT8ARRAY_="function"==typeof Uint8Array;jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_};jspb.Message.getIndex_=function(a,b){return b+a.arrayIndexOffset_};
+jspb.Message.initialize=function(a,b,c,d,e,f){a.wrappers_=jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS?null:{};b||(b=c?[c]:[]);a.messageId_=c?String(c):void 0;a.arrayIndexOffset_=0===c?-1:0;a.array=b;jspb.Message.initPivotAndExtensionObject_(a,d);a.convertedFloatingPointFields_={};if(e)for(b=0;b<e.length;b++)c=e[b],c<a.pivot_?(c=jspb.Message.getIndex_(a,c),a.array[c]=a.array[c]||(jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS?jspb.Message.EMPTY_LIST_SENTINEL_:[])):(jspb.Message.maybeInitEmptyExtensionObject_(a),
+a.extensionObject_[c]=a.extensionObject_[c]||(jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS?jspb.Message.EMPTY_LIST_SENTINEL_:[]));f&&f.length&&goog.array.forEach(f,goog.partial(jspb.Message.computeOneofCase,a))};jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[];jspb.Message.isArray_=function(a){return jspb.Message.ASSUME_LOCAL_ARRAYS?a instanceof Array:goog.isArray(a)};
+jspb.Message.initPivotAndExtensionObject_=function(a,b){if(a.array.length){var c=a.array.length-1,d=a.array[c];if(d&&"object"==typeof d&&!jspb.Message.isArray_(d)&&!(jspb.Message.SUPPORTS_UINT8ARRAY_&&d instanceof Uint8Array)){a.pivot_=c-a.arrayIndexOffset_;a.extensionObject_=d;return}}-1<b?(a.pivot_=b,a.extensionObject_=null):a.pivot_=Number.MAX_VALUE};jspb.Message.maybeInitEmptyExtensionObject_=function(a){var b=jspb.Message.getIndex_(a,a.pivot_);a.array[b]||(a.extensionObject_=a.array[b]={})};
+jspb.Message.toObjectList=function(a,b,c){for(var d=[],e=0;e<a.length;e++)d[e]=b.call(a[e],c,a[e]);return d};jspb.Message.toObjectExtension=function(a,b,c,d,e){for(var f in c){var g=c[f],n=d.call(a,g);if(null!=n){for(var q in g.fieldName)if(g.fieldName.hasOwnProperty(q))break;b[q]=g.toObjectFn?g.isRepeated?jspb.Message.toObjectList(n,g.toObjectFn,e):g.toObjectFn(e,n):n}}};
+jspb.Message.serializeBinaryExtensions=function(a,b,c,d){for(var e in c){var f=c[e],g=f.fieldInfo;if(!f.binaryWriterFn)throw Error("Message extension present that was generated without binary serialization support");var n=d.call(a,g);if(null!=n)if(g.isMessageType())if(f.binaryMessageSerializeFn)f.binaryWriterFn.call(b,g.fieldIndex,n,f.binaryMessageSerializeFn);else throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");
+else f.binaryWriterFn.call(b,g.fieldIndex,n)}};jspb.Message.readBinaryExtension=function(a,b,c,d,e){var f=c[b.getFieldNumber()];if(f){c=f.fieldInfo;if(!f.binaryReaderFn)throw Error("Deserializing extension whose generated code does not support binary format");if(c.isMessageType()){var g=new c.ctor;f.binaryReaderFn.call(b,g,f.binaryMessageDeserializeFn)}else g=f.binaryReaderFn.call(b);c.isRepeated&&!f.isPacked?(b=d.call(a,c))?b.push(g):e.call(a,c,[g]):e.call(a,c,g)}else b.skipField()};
+jspb.Message.getField=function(a,b){if(b<a.pivot_){b=jspb.Message.getIndex_(a,b);var c=a.array[b];return c===jspb.Message.EMPTY_LIST_SENTINEL_?a.array[b]=[]:c}if(a.extensionObject_)return c=a.extensionObject_[b],c===jspb.Message.EMPTY_LIST_SENTINEL_?a.extensionObject_[b]=[]:c};
+jspb.Message.getRepeatedField=function(a,b){if(b<a.pivot_){b=jspb.Message.getIndex_(a,b);var c=a.array[b];return c===jspb.Message.EMPTY_LIST_SENTINEL_?a.array[b]=[]:c}c=a.extensionObject_[b];return c===jspb.Message.EMPTY_LIST_SENTINEL_?a.extensionObject_[b]=[]:c};jspb.Message.getOptionalFloatingPointField=function(a,b){a=jspb.Message.getField(a,b);return null==a?a:+a};
+jspb.Message.getRepeatedFloatingPointField=function(a,b){var c=jspb.Message.getRepeatedField(a,b);a.convertedFloatingPointFields_||(a.convertedFloatingPointFields_={});if(!a.convertedFloatingPointFields_[b]){for(var d=0;d<c.length;d++)c[d]=+c[d];a.convertedFloatingPointFields_[b]=!0}return c};
+jspb.Message.bytesAsB64=function(a){if(null==a||goog.isString(a))return a;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)return goog.crypt.base64.encodeByteArray(a);goog.asserts.fail("Cannot coerce to b64 string: "+goog.typeOf(a));return null};jspb.Message.bytesAsU8=function(a){if(null==a||a instanceof Uint8Array)return a;if(goog.isString(a))return goog.crypt.base64.decodeStringToUint8Array(a);goog.asserts.fail("Cannot coerce to Uint8Array: "+goog.typeOf(a));return null};
+jspb.Message.bytesListAsB64=function(a){jspb.Message.assertConsistentTypes_(a);return!a.length||goog.isString(a[0])?a:goog.array.map(a,jspb.Message.bytesAsB64)};jspb.Message.bytesListAsU8=function(a){jspb.Message.assertConsistentTypes_(a);return!a.length||a[0]instanceof Uint8Array?a:goog.array.map(a,jspb.Message.bytesAsU8)};
+jspb.Message.assertConsistentTypes_=function(a){if(goog.DEBUG&&a&&1<a.length){var b=goog.typeOf(a[0]);goog.array.forEach(a,function(a){goog.typeOf(a)!=b&&goog.asserts.fail("Inconsistent type in JSPB repeated field array. Got "+goog.typeOf(a)+" expected "+b)})}};jspb.Message.getFieldWithDefault=function(a,b,c){a=jspb.Message.getField(a,b);return null==a?c:a};jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault;
+jspb.Message.getMapField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});if(b in a.wrappers_)return a.wrappers_[b];if(!c)return c=jspb.Message.getField(a,b),c||(c=[],jspb.Message.setField(a,b,c)),a.wrappers_[b]=new jspb.Map(c,d)};jspb.Message.setField=function(a,b,c){b<a.pivot_?a.array[jspb.Message.getIndex_(a,b)]=c:(jspb.Message.maybeInitEmptyExtensionObject_(a),a.extensionObject_[b]=c)};jspb.Message.setProto3IntField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};
+jspb.Message.setProto3FloatField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};jspb.Message.setProto3BooleanField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,!1)};jspb.Message.setProto3StringField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,"")};jspb.Message.setProto3BytesField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,"")};jspb.Message.setProto3EnumField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};
+jspb.Message.setFieldIgnoringDefault_=function(a,b,c,d){c!=d?jspb.Message.setField(a,b,c):a.array[jspb.Message.getIndex_(a,b)]=null};jspb.Message.addToRepeatedField=function(a,b,c,d){a=jspb.Message.getRepeatedField(a,b);void 0!=d?a.splice(d,0,c):a.push(c)};jspb.Message.setOneofField=function(a,b,c,d){(c=jspb.Message.computeOneofCase(a,c))&&c!==b&&void 0!==d&&(a.wrappers_&&c in a.wrappers_&&(a.wrappers_[c]=void 0),jspb.Message.setField(a,c,void 0));jspb.Message.setField(a,b,d)};
+jspb.Message.computeOneofCase=function(a,b){var c,d;goog.array.forEach(b,function(b){var e=jspb.Message.getField(a,b);goog.isDefAndNotNull(e)&&(c=b,d=e,jspb.Message.setField(a,b,void 0))});return c?(jspb.Message.setField(a,c,d),c):0};jspb.Message.getWrapperField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});if(!a.wrappers_[c]){var e=jspb.Message.getField(a,c);if(d||e)a.wrappers_[c]=new b(e)}return a.wrappers_[c]};
+jspb.Message.getRepeatedWrapperField=function(a,b,c){jspb.Message.wrapRepeatedField_(a,b,c);b=a.wrappers_[c];b==jspb.Message.EMPTY_LIST_SENTINEL_&&(b=a.wrappers_[c]=[]);return b};jspb.Message.wrapRepeatedField_=function(a,b,c){a.wrappers_||(a.wrappers_={});if(!a.wrappers_[c]){for(var d=jspb.Message.getRepeatedField(a,c),e=[],f=0;f<d.length;f++)e[f]=new b(d[f]);a.wrappers_[c]=e}};
+jspb.Message.setWrapperField=function(a,b,c){a.wrappers_||(a.wrappers_={});var d=c?c.toArray():c;a.wrappers_[b]=c;jspb.Message.setField(a,b,d)};jspb.Message.setOneofWrapperField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});var e=d?d.toArray():d;a.wrappers_[b]=d;jspb.Message.setOneofField(a,b,c,e)};jspb.Message.setRepeatedWrapperField=function(a,b,c){a.wrappers_||(a.wrappers_={});c=c||[];for(var d=[],e=0;e<c.length;e++)d[e]=c[e].toArray();a.wrappers_[b]=c;jspb.Message.setField(a,b,d)};
+jspb.Message.addToRepeatedWrapperField=function(a,b,c,d,e){jspb.Message.wrapRepeatedField_(a,d,b);var f=a.wrappers_[b];f||(f=a.wrappers_[b]=[]);c=c?c:new d;a=jspb.Message.getRepeatedField(a,b);void 0!=e?(f.splice(e,0,c),a.splice(e,0,c.toArray())):(f.push(c),a.push(c.toArray()));return c};jspb.Message.toMap=function(a,b,c,d){for(var e={},f=0;f<a.length;f++)e[b.call(a[f])]=c?c.call(a[f],d,a[f]):a[f];return e};
+jspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var a in this.wrappers_){var b=this.wrappers_[a];if(goog.isArray(b))for(var c=0;c<b.length;c++)b[c]&&b[c].toArray();else b&&b.toArray()}};jspb.Message.prototype.toArray=function(){this.syncMapFields_();return this.array};jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){this.syncMapFields_();return this.array.toString()});
+jspb.Message.prototype.getExtension=function(a){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var b=a.fieldIndex;if(a.isRepeated){if(a.isMessageType())return this.wrappers_[b]||(this.wrappers_[b]=goog.array.map(this.extensionObject_[b]||[],function(b){return new a.ctor(b)})),this.wrappers_[b]}else if(a.isMessageType())return!this.wrappers_[b]&&this.extensionObject_[b]&&(this.wrappers_[b]=new a.ctor(this.extensionObject_[b])),this.wrappers_[b];return this.extensionObject_[b]}};
+jspb.Message.prototype.setExtension=function(a,b){this.wrappers_||(this.wrappers_={});jspb.Message.maybeInitEmptyExtensionObject_(this);var c=a.fieldIndex;a.isRepeated?(b=b||[],a.isMessageType()?(this.wrappers_[c]=b,this.extensionObject_[c]=goog.array.map(b,function(a){return a.toArray()})):this.extensionObject_[c]=b):a.isMessageType()?(this.wrappers_[c]=b,this.extensionObject_[c]=b?b.toArray():b):this.extensionObject_[c]=b;return this};
+jspb.Message.difference=function(a,b){if(!(a instanceof b.constructor))throw Error("Messages have different types.");var c=a.toArray();b=b.toArray();var d=[],e=0,f=c.length>b.length?c.length:b.length;a.getJsPbMessageId()&&(d[0]=a.getJsPbMessageId(),e=1);for(;e<f;e++)jspb.Message.compareFields(c[e],b[e])||(d[e]=b[e]);return new a.constructor(d)};jspb.Message.equals=function(a,b){return a==b||!(!a||!b)&&a instanceof b.constructor&&jspb.Message.compareFields(a.toArray(),b.toArray())};
+jspb.Message.compareExtensions=function(a,b){a=a||{};b=b||{};var c={},d;for(d in a)c[d]=0;for(d in b)c[d]=0;for(d in c)if(!jspb.Message.compareFields(a[d],b[d]))return!1;return!0};
+jspb.Message.compareFields=function(a,b){if(a==b)return!0;if(!goog.isObject(a)||!goog.isObject(b)||a.constructor!=b.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a.constructor===Uint8Array){if(a.length!=b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!=b[c])return!1;return!0}if(a.constructor===Array){var d=void 0,e=void 0,f=Math.max(a.length,b.length);for(c=0;c<f;c++){var g=a[c],n=b[c];g&&g.constructor==Object&&(goog.asserts.assert(void 0===d),goog.asserts.assert(c===a.length-1),
+d=g,g=void 0);n&&n.constructor==Object&&(goog.asserts.assert(void 0===e),goog.asserts.assert(c===b.length-1),e=n,n=void 0);if(!jspb.Message.compareFields(g,n))return!1}return d||e?(d=d||{},e=e||{},jspb.Message.compareExtensions(d,e)):!0}if(a.constructor===Object)return jspb.Message.compareExtensions(a,b);throw Error("Invalid type in JSPB array");};jspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)};jspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)};
+jspb.Message.clone=function(a){return jspb.Message.cloneMessage(a)};jspb.Message.cloneMessage=function(a){return new a.constructor(jspb.Message.clone_(a.toArray()))};
+jspb.Message.copyInto=function(a,b){goog.asserts.assertInstanceof(a,jspb.Message);goog.asserts.assertInstanceof(b,jspb.Message);goog.asserts.assert(a.constructor==b.constructor,"Copy source and target message should have the same type.");a=jspb.Message.clone(a);for(var c=b.toArray(),d=a.toArray(),e=c.length=0;e<d.length;e++)c[e]=d[e];b.wrappers_=a.wrappers_;b.extensionObject_=a.extensionObject_};
+jspb.Message.clone_=function(a){var b;if(goog.isArray(a)){for(var c=Array(a.length),d=0;d<a.length;d++)null!=(b=a[d])&&(c[d]="object"==typeof b?jspb.Message.clone_(b):b);return c}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)return new Uint8Array(a);c={};for(d in a)null!=(b=a[d])&&(c[d]="object"==typeof b?jspb.Message.clone_(b):b);return c};jspb.Message.registerMessageType=function(a,b){jspb.Message.registry_[a]=b;b.messageId=a};jspb.Message.registry_={};
+jspb.Message.messageSetExtensions={};jspb.Message.messageSetExtensionsBinary={};jspb.arith={};jspb.arith.UInt64=function(a,b){this.lo=a;this.hi=b};jspb.arith.UInt64.prototype.cmp=function(a){return this.hi<a.hi||this.hi==a.hi&&this.lo<a.lo?-1:this.hi==a.hi&&this.lo==a.lo?0:1};jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(this.hi&1)<<31)>>>0,this.hi>>>1>>>0)};jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)};
+jspb.arith.UInt64.prototype.msb=function(){return!!(this.hi&2147483648)};jspb.arith.UInt64.prototype.lsb=function(){return!!(this.lo&1)};jspb.arith.UInt64.prototype.zero=function(){return 0==this.lo&&0==this.hi};jspb.arith.UInt64.prototype.add=function(a){return new jspb.arith.UInt64((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};
+jspb.arith.UInt64.prototype.sub=function(a){return new jspb.arith.UInt64((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};jspb.arith.UInt64.mul32x32=function(a,b){var c=a&65535;a>>>=16;var d=b&65535,e=b>>>16;b=c*d+65536*(c*e&65535)+65536*(a*d&65535);for(c=a*e+(c*e>>>16)+(a*d>>>16);4294967296<=b;)b-=4294967296,c+=1;return new jspb.arith.UInt64(b>>>0,c>>>0)};
+jspb.arith.UInt64.prototype.mul=function(a){var b=jspb.arith.UInt64.mul32x32(this.lo,a);a=jspb.arith.UInt64.mul32x32(this.hi,a);a.hi=a.lo;a.lo=0;return b.add(a)};
+jspb.arith.UInt64.prototype.div=function(a){if(0==a)return[];var b=new jspb.arith.UInt64(0,0),c=new jspb.arith.UInt64(this.lo,this.hi);a=new jspb.arith.UInt64(a,0);for(var d=new jspb.arith.UInt64(1,0);!a.msb();)a=a.leftShift(),d=d.leftShift();for(;!d.zero();)0>=a.cmp(c)&&(b=b.add(d),c=c.sub(a)),a=a.rightShift(),d=d.rightShift();return[b,c]};jspb.arith.UInt64.prototype.toString=function(){for(var a="",b=this;!b.zero();){b=b.div(10);var c=b[0];a=b[1].lo+a;b=c}""==a&&(a="0");return a};
+jspb.arith.UInt64.fromString=function(a){for(var b=new jspb.arith.UInt64(0,0),c=new jspb.arith.UInt64(0,0),d=0;d<a.length;d++){if("0">a[d]||"9"<a[d])return null;var e=parseInt(a[d],10);c.lo=e;b=b.mul(10).add(c)}return b};jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)};jspb.arith.Int64=function(a,b){this.lo=a;this.hi=b};
+jspb.arith.Int64.prototype.add=function(a){return new jspb.arith.Int64((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};jspb.arith.Int64.prototype.sub=function(a){return new jspb.arith.Int64((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)};
+jspb.arith.Int64.prototype.toString=function(){var a=0!=(this.hi&2147483648),b=new jspb.arith.UInt64(this.lo,this.hi);a&&(b=(new jspb.arith.UInt64(0,0)).sub(b));return(a?"-":"")+b.toString()};jspb.arith.Int64.fromString=function(a){var b=0<a.length&&"-"==a[0];b&&(a=a.substring(1));a=jspb.arith.UInt64.fromString(a);if(null===a)return null;b&&(a=(new jspb.arith.UInt64(0,0)).sub(a));return new jspb.arith.Int64(a.lo,a.hi)};jspb.BinaryEncoder=function(){this.buffer_=[]};jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length};jspb.BinaryEncoder.prototype.end=function(){var a=this.buffer_;this.buffer_=[];return a};
+jspb.BinaryEncoder.prototype.writeSplitVarint64=function(a,b){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(b==Math.floor(b));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);for(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32);0<b||127<a;)this.buffer_.push(a&127|128),a=(a>>>7|b<<25)>>>0,b>>>=7;this.buffer_.push(a)};
+jspb.BinaryEncoder.prototype.writeSplitFixed64=function(a,b){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(b==Math.floor(b));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32);this.writeUint32(a);this.writeUint32(b)};
+jspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(a){goog.asserts.assert(a==Math.floor(a));for(goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);127<a;)this.buffer_.push(a&127|128),a>>>=7;this.buffer_.push(a)};
+jspb.BinaryEncoder.prototype.writeSignedVarint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);if(0<=a)this.writeUnsignedVarint32(a);else{for(var b=0;9>b;b++)this.buffer_.push(a&127|128),a>>=7;this.buffer_.push(1)}};
+jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_64);jspb.utils.splitInt64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};
+jspb.BinaryEncoder.prototype.writeSignedVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitInt64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};
+jspb.BinaryEncoder.prototype.writeZigzagVarint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.writeUnsignedVarint32((a<<1^a>>31)>>>0)};jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitZigzag64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};
+jspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(a){this.writeZigzagVarint64(parseInt(a,10))};jspb.BinaryEncoder.prototype.writeUint8=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&256>a);this.buffer_.push(a>>>0&255)};jspb.BinaryEncoder.prototype.writeUint16=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&65536>a);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255)};
+jspb.BinaryEncoder.prototype.writeUint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)};jspb.BinaryEncoder.prototype.writeUint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_64);jspb.utils.splitUint64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};
+jspb.BinaryEncoder.prototype.writeInt8=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(-128<=a&&128>a);this.buffer_.push(a>>>0&255)};jspb.BinaryEncoder.prototype.writeInt16=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(-32768<=a&&32768>a);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255)};
+jspb.BinaryEncoder.prototype.writeInt32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)};
+jspb.BinaryEncoder.prototype.writeInt64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitInt64(a);this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)};
+jspb.BinaryEncoder.prototype.writeInt64String=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(+a>=-jspb.BinaryConstants.TWO_TO_63&&+a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a));this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)};jspb.BinaryEncoder.prototype.writeFloat=function(a){goog.asserts.assert(a>=-jspb.BinaryConstants.FLOAT32_MAX&&a<=jspb.BinaryConstants.FLOAT32_MAX);jspb.utils.splitFloat32(a);this.writeUint32(jspb.utils.split64Low)};
+jspb.BinaryEncoder.prototype.writeDouble=function(a){goog.asserts.assert(a>=-jspb.BinaryConstants.FLOAT64_MAX&&a<=jspb.BinaryConstants.FLOAT64_MAX);jspb.utils.splitFloat64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};jspb.BinaryEncoder.prototype.writeBool=function(a){goog.asserts.assert(goog.isBoolean(a)||goog.isNumber(a));this.buffer_.push(a?1:0)};
+jspb.BinaryEncoder.prototype.writeEnum=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.writeSignedVarint32(a)};jspb.BinaryEncoder.prototype.writeBytes=function(a){this.buffer_.push.apply(this.buffer_,a)};jspb.BinaryEncoder.prototype.writeVarintHash64=function(a){jspb.utils.splitHash64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};
+jspb.BinaryEncoder.prototype.writeFixedHash64=function(a){jspb.utils.splitHash64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};
+jspb.BinaryEncoder.prototype.writeString=function(a){for(var b=this.buffer_.length,c=0;c<a.length;c++){var d=a.charCodeAt(c);if(128>d)this.buffer_.push(d);else if(2048>d)this.buffer_.push(d>>6|192),this.buffer_.push(d&63|128);else if(65536>d)if(55296<=d&&56319>=d&&c+1<a.length){var e=a.charCodeAt(c+1);56320<=e&&57343>=e&&(d=1024*(d-55296)+e-56320+65536,this.buffer_.push(d>>18|240),this.buffer_.push(d>>12&63|128),this.buffer_.push(d>>6&63|128),this.buffer_.push(d&63|128),c++)}else this.buffer_.push(d>>
+12|224),this.buffer_.push(d>>6&63|128),this.buffer_.push(d&63|128)}return this.buffer_.length-b};jspb.BinaryWriter=function(){this.blocks_=[];this.totalLength_=0;this.encoder_=new jspb.BinaryEncoder;this.bookmarks_=[]};jspb.BinaryWriter.prototype.appendUint8Array_=function(a){var b=this.encoder_.end();this.blocks_.push(b);this.blocks_.push(a);this.totalLength_+=b.length+a.length};
+jspb.BinaryWriter.prototype.beginDelimited_=function(a){this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED);a=this.encoder_.end();this.blocks_.push(a);this.totalLength_+=a.length;a.push(this.totalLength_);return a};jspb.BinaryWriter.prototype.endDelimited_=function(a){var b=a.pop();b=this.totalLength_+this.encoder_.length()-b;for(goog.asserts.assert(0<=b);127<b;)a.push(b&127|128),b>>>=7,this.totalLength_++;a.push(b);this.totalLength_++};
+jspb.BinaryWriter.prototype.writeSerializedMessage=function(a,b,c){this.appendUint8Array_(a.subarray(b,c))};jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(a,b,c){null!=a&&null!=b&&null!=c&&this.writeSerializedMessage(a,b,c)};jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[];this.encoder_.end();this.totalLength_=0;this.bookmarks_=[]};
+jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(0==this.bookmarks_.length);for(var a=new Uint8Array(this.totalLength_+this.encoder_.length()),b=this.blocks_,c=b.length,d=0,e=0;e<c;e++){var f=b[e];a.set(f,d);d+=f.length}b=this.encoder_.end();a.set(b,d);d+=b.length;goog.asserts.assert(d==a.length);this.blocks_=[a];return a};jspb.BinaryWriter.prototype.getResultBase64String=function(){return goog.crypt.base64.encodeByteArray(this.getResultBuffer())};
+jspb.BinaryWriter.prototype.beginSubMessage=function(a){this.bookmarks_.push(this.beginDelimited_(a))};jspb.BinaryWriter.prototype.endSubMessage=function(){goog.asserts.assert(0<=this.bookmarks_.length);this.endDelimited_(this.bookmarks_.pop())};jspb.BinaryWriter.prototype.writeFieldHeader_=function(a,b){goog.asserts.assert(1<=a&&a==Math.floor(a));this.encoder_.writeUnsignedVarint32(8*a+b)};
+jspb.BinaryWriter.prototype.writeAny=function(a,b,c){var d=jspb.BinaryConstants.FieldType;switch(a){case d.DOUBLE:this.writeDouble(b,c);break;case d.FLOAT:this.writeFloat(b,c);break;case d.INT64:this.writeInt64(b,c);break;case d.UINT64:this.writeUint64(b,c);break;case d.INT32:this.writeInt32(b,c);break;case d.FIXED64:this.writeFixed64(b,c);break;case d.FIXED32:this.writeFixed32(b,c);break;case d.BOOL:this.writeBool(b,c);break;case d.STRING:this.writeString(b,c);break;case d.GROUP:goog.asserts.fail("Group field type not supported in writeAny()");
+break;case d.MESSAGE:goog.asserts.fail("Message field type not supported in writeAny()");break;case d.BYTES:this.writeBytes(b,c);break;case d.UINT32:this.writeUint32(b,c);break;case d.ENUM:this.writeEnum(b,c);break;case d.SFIXED32:this.writeSfixed32(b,c);break;case d.SFIXED64:this.writeSfixed64(b,c);break;case d.SINT32:this.writeSint32(b,c);break;case d.SINT64:this.writeSint64(b,c);break;case d.FHASH64:this.writeFixedHash64(b,c);break;case d.VHASH64:this.writeVarintHash64(b,c);break;default:goog.asserts.fail("Invalid field type in writeAny()")}};
+jspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(b))};jspb.BinaryWriter.prototype.writeSignedVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(b))};jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(b))};
+jspb.BinaryWriter.prototype.writeSignedVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(b))};jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(b))};jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(b))};
+jspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(b))};jspb.BinaryWriter.prototype.writeInt32=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(a,b))};
+jspb.BinaryWriter.prototype.writeInt32String=function(a,b){null!=b&&(b=parseInt(b,10),goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(a,b))};jspb.BinaryWriter.prototype.writeInt64=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(a,b))};
+jspb.BinaryWriter.prototype.writeInt64String=function(a,b){null!=b&&(b=jspb.arith.Int64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeUint32=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(a,b))};
+jspb.BinaryWriter.prototype.writeUint32String=function(a,b){null!=b&&(b=parseInt(b,10),goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(a,b))};jspb.BinaryWriter.prototype.writeUint64=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(a,b))};
+jspb.BinaryWriter.prototype.writeUint64String=function(a,b){null!=b&&(b=jspb.arith.UInt64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeSint32=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(a,b))};
+jspb.BinaryWriter.prototype.writeSint64=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(a,b))};jspb.BinaryWriter.prototype.writeSint64String=function(a,b){null!=b&&(goog.asserts.assert(+b>=-jspb.BinaryConstants.TWO_TO_63&&+b<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64String_(a,b))};
+jspb.BinaryWriter.prototype.writeFixed32=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(b))};jspb.BinaryWriter.prototype.writeFixed64=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(b))};
+jspb.BinaryWriter.prototype.writeFixed64String=function(a,b){null!=b&&(b=jspb.arith.UInt64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeSfixed32=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(b))};
+jspb.BinaryWriter.prototype.writeSfixed64=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(b))};jspb.BinaryWriter.prototype.writeSfixed64String=function(a,b){null!=b&&(b=jspb.arith.Int64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(b.lo,b.hi))};
+jspb.BinaryWriter.prototype.writeFloat=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(b))};jspb.BinaryWriter.prototype.writeDouble=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(b))};jspb.BinaryWriter.prototype.writeBool=function(a,b){null!=b&&(goog.asserts.assert(goog.isBoolean(b)||goog.isNumber(b)),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(b))};
+jspb.BinaryWriter.prototype.writeEnum=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(b))};jspb.BinaryWriter.prototype.writeString=function(a,b){null!=b&&(a=this.beginDelimited_(a),this.encoder_.writeString(b),this.endDelimited_(a))};
+jspb.BinaryWriter.prototype.writeBytes=function(a,b){null!=b&&(b=jspb.utils.byteSourceToUint8Array(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(b.length),this.appendUint8Array_(b))};jspb.BinaryWriter.prototype.writeMessage=function(a,b,c){null!=b&&(a=this.beginDelimited_(a),c(b,this),this.endDelimited_(a))};
+jspb.BinaryWriter.prototype.writeGroup=function(a,b,c){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.START_GROUP),c(b,this),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.END_GROUP))};jspb.BinaryWriter.prototype.writeFixedHash64=function(a,b){null!=b&&(goog.asserts.assert(8==b.length),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(b))};
+jspb.BinaryWriter.prototype.writeVarintHash64=function(a,b){null!=b&&(goog.asserts.assert(8==b.length),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(b))};jspb.BinaryWriter.prototype.writeRepeatedInt32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSignedVarint32_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeInt32String(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedInt64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSignedVarint64_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeInt64String(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedUint32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUnsignedVarint32_(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedUint32String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUint32String(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedUint64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUnsignedVarint64_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUint64String(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedSint32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint32_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSint64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint64_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSint64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint64String_(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedFixed32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed32(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedFixed64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed64(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed64String(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed32(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed64(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed64String(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedFloat=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFloat(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedDouble=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeDouble(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedBool=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeBool(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedEnum=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeEnum(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedString=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeString(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedBytes=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeBytes(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedMessage=function(a,b,c){if(null!=b)for(var d=0;d<b.length;d++){var e=this.beginDelimited_(a);c(b[d],this);this.endDelimited_(e)}};
+jspb.BinaryWriter.prototype.writeRepeatedGroup=function(a,b,c){if(null!=b)for(var d=0;d<b.length;d++)this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.START_GROUP),c(b[d],this),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.END_GROUP)};jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixedHash64(a,b[c])};
+jspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeVarintHash64(a,b[c])};jspb.BinaryWriter.prototype.writePackedInt32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint32(b[c]);this.endDelimited_(a)}};
+jspb.BinaryWriter.prototype.writePackedInt32String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint32(parseInt(b[c],10));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedInt64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint64(b[c]);this.endDelimited_(a)}};
+jspb.BinaryWriter.prototype.writePackedInt64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++){var d=jspb.arith.Int64.fromString(b[c]);this.encoder_.writeSplitVarint64(d.lo,d.hi)}this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedUint32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint32(b[c]);this.endDelimited_(a)}};
+jspb.BinaryWriter.prototype.writePackedUint32String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint32(parseInt(b[c],10));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedUint64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint64(b[c]);this.endDelimited_(a)}};
+jspb.BinaryWriter.prototype.writePackedUint64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++){var d=jspb.arith.UInt64.fromString(b[c]);this.encoder_.writeSplitVarint64(d.lo,d.hi)}this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedSint32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint32(b[c]);this.endDelimited_(a)}};
+jspb.BinaryWriter.prototype.writePackedSint64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint64(b[c]);this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedSint64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint64(parseInt(b[c],10));this.endDelimited_(a)}};
+jspb.BinaryWriter.prototype.writePackedFixed32=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeUint32(b[a])};jspb.BinaryWriter.prototype.writePackedFixed64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeUint64(b[a])};
+jspb.BinaryWriter.prototype.writePackedFixed64String=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++){var c=jspb.arith.UInt64.fromString(b[a]);this.encoder_.writeSplitFixed64(c.lo,c.hi)}};
+jspb.BinaryWriter.prototype.writePackedSfixed32=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeInt32(b[a])};jspb.BinaryWriter.prototype.writePackedSfixed64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeInt64(b[a])};
+jspb.BinaryWriter.prototype.writePackedSfixed64String=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeInt64String(b[a])};jspb.BinaryWriter.prototype.writePackedFloat=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeFloat(b[a])};
+jspb.BinaryWriter.prototype.writePackedDouble=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeDouble(b[a])};jspb.BinaryWriter.prototype.writePackedBool=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(b.length),a=0;a<b.length;a++)this.encoder_.writeBool(b[a])};
+jspb.BinaryWriter.prototype.writePackedEnum=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeEnum(b[c]);this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedFixedHash64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeFixedHash64(b[a])};
+jspb.BinaryWriter.prototype.writePackedVarintHash64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeVarintHash64(b[c]);this.endDelimited_(a)}};var proto={protocol:{}};proto.protocol.PushServiceConfigMsg=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.protocol.PushServiceConfigMsg,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.protocol.PushServiceConfigMsg.displayName="proto.protocol.PushServiceConfigMsg");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.protocol.PushServiceConfigMsg.prototype.toObject=function(a){return proto.protocol.PushServiceConfigMsg.toObject(a,this)},proto.protocol.PushServiceConfigMsg.toObject=function(a,b){var c={fetchbucket:jspb.Message.getField(b,1),usebucketv2:jspb.Message.getField(b,2),clientversion:jspb.Message.getField(b,3),cloudversion:jspb.Message.getField(b,4),dots:jspb.Message.getField(b,5)};a&&(c.$jspbMessageInstance=b);return c});
+proto.protocol.PushServiceConfigMsg.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.protocol.PushServiceConfigMsg;return proto.protocol.PushServiceConfigMsg.deserializeBinaryFromReader(b,a)};
+proto.protocol.PushServiceConfigMsg.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readBool();a.setFetchbucket(c);break;case 2:c=b.readBool();a.setUsebucketv2(c);break;case 3:c=b.readInt32();a.setClientversion(c);break;case 4:c=b.readInt32();a.setCloudversion(c);break;case 5:c=b.readInt32();a.setDots(c);break;default:b.skipField()}return a};
+proto.protocol.PushServiceConfigMsg.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.protocol.PushServiceConfigMsg.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.protocol.PushServiceConfigMsg.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeBool(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeBool(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeInt32(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeInt32(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeInt32(5,c)};proto.protocol.PushServiceConfigMsg.prototype.getFetchbucket=function(){return jspb.Message.getFieldWithDefault(this,1,!1)};
+proto.protocol.PushServiceConfigMsg.prototype.setFetchbucket=function(a){jspb.Message.setField(this,1,a)};proto.protocol.PushServiceConfigMsg.prototype.clearFetchbucket=function(){jspb.Message.setField(this,1,void 0)};proto.protocol.PushServiceConfigMsg.prototype.hasFetchbucket=function(){return null!=jspb.Message.getField(this,1)};proto.protocol.PushServiceConfigMsg.prototype.getUsebucketv2=function(){return jspb.Message.getFieldWithDefault(this,2,!1)};
+proto.protocol.PushServiceConfigMsg.prototype.setUsebucketv2=function(a){jspb.Message.setField(this,2,a)};proto.protocol.PushServiceConfigMsg.prototype.clearUsebucketv2=function(){jspb.Message.setField(this,2,void 0)};proto.protocol.PushServiceConfigMsg.prototype.hasUsebucketv2=function(){return null!=jspb.Message.getField(this,2)};proto.protocol.PushServiceConfigMsg.prototype.getClientversion=function(){return jspb.Message.getFieldWithDefault(this,3,0)};
+proto.protocol.PushServiceConfigMsg.prototype.setClientversion=function(a){jspb.Message.setField(this,3,a)};proto.protocol.PushServiceConfigMsg.prototype.clearClientversion=function(){jspb.Message.setField(this,3,void 0)};proto.protocol.PushServiceConfigMsg.prototype.hasClientversion=function(){return null!=jspb.Message.getField(this,3)};proto.protocol.PushServiceConfigMsg.prototype.getCloudversion=function(){return jspb.Message.getFieldWithDefault(this,4,0)};
+proto.protocol.PushServiceConfigMsg.prototype.setCloudversion=function(a){jspb.Message.setField(this,4,a)};proto.protocol.PushServiceConfigMsg.prototype.clearCloudversion=function(){jspb.Message.setField(this,4,void 0)};proto.protocol.PushServiceConfigMsg.prototype.hasCloudversion=function(){return null!=jspb.Message.getField(this,4)};proto.protocol.PushServiceConfigMsg.prototype.getDots=function(){return jspb.Message.getFieldWithDefault(this,5,0)};
+proto.protocol.PushServiceConfigMsg.prototype.setDots=function(a){jspb.Message.setField(this,5,a)};proto.protocol.PushServiceConfigMsg.prototype.clearDots=function(){jspb.Message.setField(this,5,void 0)};proto.protocol.PushServiceConfigMsg.prototype.hasDots=function(){return null!=jspb.Message.getField(this,5)};proto.ims={};proto.ims.ClientHeader=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.ims.ClientHeader,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.ims.ClientHeader.displayName="proto.ims.ClientHeader");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.ims.ClientHeader.prototype.toObject=function(a){return proto.ims.ClientHeader.toObject(a,this)},proto.ims.ClientHeader.toObject=function(a,b){var c={chid:jspb.Message.getField(b,1),uuid:jspb.Message.getField(b,2),server:jspb.Message.getField(b,3),resource:jspb.Message.getField(b,4),cmd:jspb.Message.getField(b,5),subcmd:jspb.Message.getField(b,6),id:jspb.Message.getField(b,7),dirFlag:jspb.Message.getField(b,8),cipher:jspb.Message.getField(b,9),errCode:jspb.Message.getField(b,
+10),errStr:jspb.Message.getField(b,11)};a&&(c.$jspbMessageInstance=b);return c});proto.ims.ClientHeader.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.ims.ClientHeader;return proto.ims.ClientHeader.deserializeBinaryFromReader(b,a)};
+proto.ims.ClientHeader.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt32();a.setChid(c);break;case 2:c=b.readInt64String();a.setUuid(c);break;case 3:c=b.readString();a.setServer(c);break;case 4:c=b.readString();a.setResource(c);break;case 5:c=b.readString();a.setCmd(c);break;case 6:c=b.readString();a.setSubcmd(c);break;case 7:c=b.readString();a.setId(c);break;case 8:c=b.readEnum();a.setDirFlag(c);break;case 9:c=b.readInt32();
+a.setCipher(c);break;case 10:c=b.readInt32();a.setErrCode(c);break;case 11:c=b.readString();a.setErrStr(c);break;default:b.skipField()}return a};proto.ims.ClientHeader.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.ims.ClientHeader.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.ims.ClientHeader.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt32(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeInt64String(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeString(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeString(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeString(6,c);c=jspb.Message.getField(a,7);null!=c&&b.writeString(7,c);c=jspb.Message.getField(a,8);null!=
+c&&b.writeEnum(8,c);c=jspb.Message.getField(a,9);null!=c&&b.writeInt32(9,c);c=jspb.Message.getField(a,10);null!=c&&b.writeInt32(10,c);c=jspb.Message.getField(a,11);null!=c&&b.writeString(11,c)};proto.ims.ClientHeader.MSG_DIR_FLAG={CS_ONEWAY:1,CS_REQ:2,CS_RESP:3,SC_ONEWAY:4,SC_REQ:5,SC_RESP:6};proto.ims.ClientHeader.prototype.getChid=function(){return jspb.Message.getFieldWithDefault(this,1,0)};proto.ims.ClientHeader.prototype.setChid=function(a){jspb.Message.setField(this,1,a)};
+proto.ims.ClientHeader.prototype.clearChid=function(){jspb.Message.setField(this,1,void 0)};proto.ims.ClientHeader.prototype.hasChid=function(){return null!=jspb.Message.getField(this,1)};proto.ims.ClientHeader.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,2,"0")};proto.ims.ClientHeader.prototype.setUuid=function(a){jspb.Message.setField(this,2,a)};proto.ims.ClientHeader.prototype.clearUuid=function(){jspb.Message.setField(this,2,void 0)};
+proto.ims.ClientHeader.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,2)};proto.ims.ClientHeader.prototype.getServer=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.ims.ClientHeader.prototype.setServer=function(a){jspb.Message.setField(this,3,a)};proto.ims.ClientHeader.prototype.clearServer=function(){jspb.Message.setField(this,3,void 0)};proto.ims.ClientHeader.prototype.hasServer=function(){return null!=jspb.Message.getField(this,3)};
+proto.ims.ClientHeader.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,4,"")};proto.ims.ClientHeader.prototype.setResource=function(a){jspb.Message.setField(this,4,a)};proto.ims.ClientHeader.prototype.clearResource=function(){jspb.Message.setField(this,4,void 0)};proto.ims.ClientHeader.prototype.hasResource=function(){return null!=jspb.Message.getField(this,4)};proto.ims.ClientHeader.prototype.getCmd=function(){return jspb.Message.getFieldWithDefault(this,5,"")};
+proto.ims.ClientHeader.prototype.setCmd=function(a){jspb.Message.setField(this,5,a)};proto.ims.ClientHeader.prototype.clearCmd=function(){jspb.Message.setField(this,5,void 0)};proto.ims.ClientHeader.prototype.hasCmd=function(){return null!=jspb.Message.getField(this,5)};proto.ims.ClientHeader.prototype.getSubcmd=function(){return jspb.Message.getFieldWithDefault(this,6,"")};proto.ims.ClientHeader.prototype.setSubcmd=function(a){jspb.Message.setField(this,6,a)};
+proto.ims.ClientHeader.prototype.clearSubcmd=function(){jspb.Message.setField(this,6,void 0)};proto.ims.ClientHeader.prototype.hasSubcmd=function(){return null!=jspb.Message.getField(this,6)};proto.ims.ClientHeader.prototype.getId=function(){return jspb.Message.getFieldWithDefault(this,7,"")};proto.ims.ClientHeader.prototype.setId=function(a){jspb.Message.setField(this,7,a)};proto.ims.ClientHeader.prototype.clearId=function(){jspb.Message.setField(this,7,void 0)};
+proto.ims.ClientHeader.prototype.hasId=function(){return null!=jspb.Message.getField(this,7)};proto.ims.ClientHeader.prototype.getDirFlag=function(){return jspb.Message.getFieldWithDefault(this,8,1)};proto.ims.ClientHeader.prototype.setDirFlag=function(a){jspb.Message.setField(this,8,a)};proto.ims.ClientHeader.prototype.clearDirFlag=function(){jspb.Message.setField(this,8,void 0)};proto.ims.ClientHeader.prototype.hasDirFlag=function(){return null!=jspb.Message.getField(this,8)};
+proto.ims.ClientHeader.prototype.getCipher=function(){return jspb.Message.getFieldWithDefault(this,9,0)};proto.ims.ClientHeader.prototype.setCipher=function(a){jspb.Message.setField(this,9,a)};proto.ims.ClientHeader.prototype.clearCipher=function(){jspb.Message.setField(this,9,void 0)};proto.ims.ClientHeader.prototype.hasCipher=function(){return null!=jspb.Message.getField(this,9)};proto.ims.ClientHeader.prototype.getErrCode=function(){return jspb.Message.getFieldWithDefault(this,10,0)};
+proto.ims.ClientHeader.prototype.setErrCode=function(a){jspb.Message.setField(this,10,a)};proto.ims.ClientHeader.prototype.clearErrCode=function(){jspb.Message.setField(this,10,void 0)};proto.ims.ClientHeader.prototype.hasErrCode=function(){return null!=jspb.Message.getField(this,10)};proto.ims.ClientHeader.prototype.getErrStr=function(){return jspb.Message.getFieldWithDefault(this,11,"")};proto.ims.ClientHeader.prototype.setErrStr=function(a){jspb.Message.setField(this,11,a)};
+proto.ims.ClientHeader.prototype.clearErrStr=function(){jspb.Message.setField(this,11,void 0)};proto.ims.ClientHeader.prototype.hasErrStr=function(){return null!=jspb.Message.getField(this,11)};proto.ims.XMMsgConn=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.ims.XMMsgConn,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.ims.XMMsgConn.displayName="proto.ims.XMMsgConn");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.ims.XMMsgConn.prototype.toObject=function(a){return proto.ims.XMMsgConn.toObject(a,this)},proto.ims.XMMsgConn.toObject=function(a,b){var c,d={version:jspb.Message.getField(b,1),model:jspb.Message.getField(b,2),os:jspb.Message.getField(b,3),udid:jspb.Message.getField(b,4),sdk:jspb.Message.getField(b,5),connpt:jspb.Message.getField(b,6),host:jspb.Message.getField(b,7),locale:jspb.Message.getField(b,8),psc:(c=b.getPsc())&&proto.protocol.PushServiceConfigMsg.toObject(a,
+c),andver:jspb.Message.getField(b,10)};a&&(d.$jspbMessageInstance=b);return d});proto.ims.XMMsgConn.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.ims.XMMsgConn;return proto.ims.XMMsgConn.deserializeBinaryFromReader(b,a)};
+proto.ims.XMMsgConn.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readUint32();a.setVersion(c);break;case 2:c=b.readString();a.setModel(c);break;case 3:c=b.readString();a.setOs(c);break;case 4:c=b.readString();a.setUdid(c);break;case 5:c=b.readInt32();a.setSdk(c);break;case 6:c=b.readString();a.setConnpt(c);break;case 7:c=b.readString();a.setHost(c);break;case 8:c=b.readString();a.setLocale(c);break;case 9:c=new proto.protocol.PushServiceConfigMsg;
+b.readMessage(c,proto.protocol.PushServiceConfigMsg.deserializeBinaryFromReader);a.setPsc(c);break;case 10:c=b.readInt32();a.setAndver(c);break;default:b.skipField()}return a};proto.ims.XMMsgConn.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.ims.XMMsgConn.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.ims.XMMsgConn.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeUint32(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeString(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeInt32(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeString(6,c);c=jspb.Message.getField(a,7);null!=c&&b.writeString(7,c);c=jspb.Message.getField(a,8);null!=c&&b.writeString(8,
+c);c=a.getPsc();null!=c&&b.writeMessage(9,c,proto.protocol.PushServiceConfigMsg.serializeBinaryToWriter);c=jspb.Message.getField(a,10);null!=c&&b.writeInt32(10,c)};proto.ims.XMMsgConn.prototype.getVersion=function(){return jspb.Message.getFieldWithDefault(this,1,0)};proto.ims.XMMsgConn.prototype.setVersion=function(a){jspb.Message.setField(this,1,a)};proto.ims.XMMsgConn.prototype.clearVersion=function(){jspb.Message.setField(this,1,void 0)};
+proto.ims.XMMsgConn.prototype.hasVersion=function(){return null!=jspb.Message.getField(this,1)};proto.ims.XMMsgConn.prototype.getModel=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.ims.XMMsgConn.prototype.setModel=function(a){jspb.Message.setField(this,2,a)};proto.ims.XMMsgConn.prototype.clearModel=function(){jspb.Message.setField(this,2,void 0)};proto.ims.XMMsgConn.prototype.hasModel=function(){return null!=jspb.Message.getField(this,2)};
+proto.ims.XMMsgConn.prototype.getOs=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.ims.XMMsgConn.prototype.setOs=function(a){jspb.Message.setField(this,3,a)};proto.ims.XMMsgConn.prototype.clearOs=function(){jspb.Message.setField(this,3,void 0)};proto.ims.XMMsgConn.prototype.hasOs=function(){return null!=jspb.Message.getField(this,3)};proto.ims.XMMsgConn.prototype.getUdid=function(){return jspb.Message.getFieldWithDefault(this,4,"")};
+proto.ims.XMMsgConn.prototype.setUdid=function(a){jspb.Message.setField(this,4,a)};proto.ims.XMMsgConn.prototype.clearUdid=function(){jspb.Message.setField(this,4,void 0)};proto.ims.XMMsgConn.prototype.hasUdid=function(){return null!=jspb.Message.getField(this,4)};proto.ims.XMMsgConn.prototype.getSdk=function(){return jspb.Message.getFieldWithDefault(this,5,0)};proto.ims.XMMsgConn.prototype.setSdk=function(a){jspb.Message.setField(this,5,a)};
+proto.ims.XMMsgConn.prototype.clearSdk=function(){jspb.Message.setField(this,5,void 0)};proto.ims.XMMsgConn.prototype.hasSdk=function(){return null!=jspb.Message.getField(this,5)};proto.ims.XMMsgConn.prototype.getConnpt=function(){return jspb.Message.getFieldWithDefault(this,6,"")};proto.ims.XMMsgConn.prototype.setConnpt=function(a){jspb.Message.setField(this,6,a)};proto.ims.XMMsgConn.prototype.clearConnpt=function(){jspb.Message.setField(this,6,void 0)};
+proto.ims.XMMsgConn.prototype.hasConnpt=function(){return null!=jspb.Message.getField(this,6)};proto.ims.XMMsgConn.prototype.getHost=function(){return jspb.Message.getFieldWithDefault(this,7,"")};proto.ims.XMMsgConn.prototype.setHost=function(a){jspb.Message.setField(this,7,a)};proto.ims.XMMsgConn.prototype.clearHost=function(){jspb.Message.setField(this,7,void 0)};proto.ims.XMMsgConn.prototype.hasHost=function(){return null!=jspb.Message.getField(this,7)};
+proto.ims.XMMsgConn.prototype.getLocale=function(){return jspb.Message.getFieldWithDefault(this,8,"")};proto.ims.XMMsgConn.prototype.setLocale=function(a){jspb.Message.setField(this,8,a)};proto.ims.XMMsgConn.prototype.clearLocale=function(){jspb.Message.setField(this,8,void 0)};proto.ims.XMMsgConn.prototype.hasLocale=function(){return null!=jspb.Message.getField(this,8)};proto.ims.XMMsgConn.prototype.getPsc=function(){return jspb.Message.getWrapperField(this,proto.protocol.PushServiceConfigMsg,9)};
+proto.ims.XMMsgConn.prototype.setPsc=function(a){jspb.Message.setWrapperField(this,9,a)};proto.ims.XMMsgConn.prototype.clearPsc=function(){this.setPsc(void 0)};proto.ims.XMMsgConn.prototype.hasPsc=function(){return null!=jspb.Message.getField(this,9)};proto.ims.XMMsgConn.prototype.getAndver=function(){return jspb.Message.getFieldWithDefault(this,10,0)};proto.ims.XMMsgConn.prototype.setAndver=function(a){jspb.Message.setField(this,10,a)};
+proto.ims.XMMsgConn.prototype.clearAndver=function(){jspb.Message.setField(this,10,void 0)};proto.ims.XMMsgConn.prototype.hasAndver=function(){return null!=jspb.Message.getField(this,10)};proto.ims.XMMsgConnResp=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.ims.XMMsgConnResp,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.ims.XMMsgConnResp.displayName="proto.ims.XMMsgConnResp");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.ims.XMMsgConnResp.prototype.toObject=function(a){return proto.ims.XMMsgConnResp.toObject(a,this)},proto.ims.XMMsgConnResp.toObject=function(a,b){var c,d={challenge:jspb.Message.getField(b,1),host:jspb.Message.getField(b,2),psc:(c=b.getPsc())&&proto.protocol.PushServiceConfigMsg.toObject(a,c)};a&&(d.$jspbMessageInstance=b);return d});
+proto.ims.XMMsgConnResp.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.ims.XMMsgConnResp;return proto.ims.XMMsgConnResp.deserializeBinaryFromReader(b,a)};
+proto.ims.XMMsgConnResp.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readString();a.setChallenge(c);break;case 2:c=b.readString();a.setHost(c);break;case 3:c=new proto.protocol.PushServiceConfigMsg;b.readMessage(c,proto.protocol.PushServiceConfigMsg.deserializeBinaryFromReader);a.setPsc(c);break;default:b.skipField()}return a};
+proto.ims.XMMsgConnResp.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.ims.XMMsgConnResp.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.ims.XMMsgConnResp.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeString(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=a.getPsc();null!=c&&b.writeMessage(3,c,proto.protocol.PushServiceConfigMsg.serializeBinaryToWriter)};
+proto.ims.XMMsgConnResp.prototype.getChallenge=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.ims.XMMsgConnResp.prototype.setChallenge=function(a){jspb.Message.setField(this,1,a)};proto.ims.XMMsgConnResp.prototype.clearChallenge=function(){jspb.Message.setField(this,1,void 0)};proto.ims.XMMsgConnResp.prototype.hasChallenge=function(){return null!=jspb.Message.getField(this,1)};
+proto.ims.XMMsgConnResp.prototype.getHost=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.ims.XMMsgConnResp.prototype.setHost=function(a){jspb.Message.setField(this,2,a)};proto.ims.XMMsgConnResp.prototype.clearHost=function(){jspb.Message.setField(this,2,void 0)};proto.ims.XMMsgConnResp.prototype.hasHost=function(){return null!=jspb.Message.getField(this,2)};
+proto.ims.XMMsgConnResp.prototype.getPsc=function(){return jspb.Message.getWrapperField(this,proto.protocol.PushServiceConfigMsg,3)};proto.ims.XMMsgConnResp.prototype.setPsc=function(a){jspb.Message.setWrapperField(this,3,a)};proto.ims.XMMsgConnResp.prototype.clearPsc=function(){this.setPsc(void 0)};proto.ims.XMMsgConnResp.prototype.hasPsc=function(){return null!=jspb.Message.getField(this,3)};proto.ims.XMMsgBind=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};
+goog.inherits(proto.ims.XMMsgBind,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.ims.XMMsgBind.displayName="proto.ims.XMMsgBind");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.ims.XMMsgBind.prototype.toObject=function(a){return proto.ims.XMMsgBind.toObject(a,this)},proto.ims.XMMsgBind.toObject=function(a,b){var c={token:jspb.Message.getField(b,1),kick:jspb.Message.getField(b,2),method:jspb.Message.getField(b,3),clientAttrs:jspb.Message.getField(b,4),cloudAttrs:jspb.Message.getField(b,5),sig:jspb.Message.getField(b,6)};a&&(c.$jspbMessageInstance=b);return c});
+proto.ims.XMMsgBind.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.ims.XMMsgBind;return proto.ims.XMMsgBind.deserializeBinaryFromReader(b,a)};
+proto.ims.XMMsgBind.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readString();a.setToken(c);break;case 2:c=b.readString();a.setKick(c);break;case 3:c=b.readString();a.setMethod(c);break;case 4:c=b.readString();a.setClientAttrs(c);break;case 5:c=b.readString();a.setCloudAttrs(c);break;case 6:c=b.readString();a.setSig(c);break;default:b.skipField()}return a};
+proto.ims.XMMsgBind.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.ims.XMMsgBind.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.ims.XMMsgBind.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeString(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeString(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeString(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeString(6,c)};
+proto.ims.XMMsgBind.prototype.getToken=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.ims.XMMsgBind.prototype.setToken=function(a){jspb.Message.setField(this,1,a)};proto.ims.XMMsgBind.prototype.clearToken=function(){jspb.Message.setField(this,1,void 0)};proto.ims.XMMsgBind.prototype.hasToken=function(){return null!=jspb.Message.getField(this,1)};proto.ims.XMMsgBind.prototype.getKick=function(){return jspb.Message.getFieldWithDefault(this,2,"")};
+proto.ims.XMMsgBind.prototype.setKick=function(a){jspb.Message.setField(this,2,a)};proto.ims.XMMsgBind.prototype.clearKick=function(){jspb.Message.setField(this,2,void 0)};proto.ims.XMMsgBind.prototype.hasKick=function(){return null!=jspb.Message.getField(this,2)};proto.ims.XMMsgBind.prototype.getMethod=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.ims.XMMsgBind.prototype.setMethod=function(a){jspb.Message.setField(this,3,a)};
+proto.ims.XMMsgBind.prototype.clearMethod=function(){jspb.Message.setField(this,3,void 0)};proto.ims.XMMsgBind.prototype.hasMethod=function(){return null!=jspb.Message.getField(this,3)};proto.ims.XMMsgBind.prototype.getClientAttrs=function(){return jspb.Message.getFieldWithDefault(this,4,"")};proto.ims.XMMsgBind.prototype.setClientAttrs=function(a){jspb.Message.setField(this,4,a)};proto.ims.XMMsgBind.prototype.clearClientAttrs=function(){jspb.Message.setField(this,4,void 0)};
+proto.ims.XMMsgBind.prototype.hasClientAttrs=function(){return null!=jspb.Message.getField(this,4)};proto.ims.XMMsgBind.prototype.getCloudAttrs=function(){return jspb.Message.getFieldWithDefault(this,5,"")};proto.ims.XMMsgBind.prototype.setCloudAttrs=function(a){jspb.Message.setField(this,5,a)};proto.ims.XMMsgBind.prototype.clearCloudAttrs=function(){jspb.Message.setField(this,5,void 0)};proto.ims.XMMsgBind.prototype.hasCloudAttrs=function(){return null!=jspb.Message.getField(this,5)};
+proto.ims.XMMsgBind.prototype.getSig=function(){return jspb.Message.getFieldWithDefault(this,6,"")};proto.ims.XMMsgBind.prototype.setSig=function(a){jspb.Message.setField(this,6,a)};proto.ims.XMMsgBind.prototype.clearSig=function(){jspb.Message.setField(this,6,void 0)};proto.ims.XMMsgBind.prototype.hasSig=function(){return null!=jspb.Message.getField(this,6)};proto.ims.XMMsgBindResp=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.ims.XMMsgBindResp,jspb.Message);
+goog.DEBUG&&!COMPILED&&(proto.ims.XMMsgBindResp.displayName="proto.ims.XMMsgBindResp");jspb.Message.GENERATE_TO_OBJECT&&(proto.ims.XMMsgBindResp.prototype.toObject=function(a){return proto.ims.XMMsgBindResp.toObject(a,this)},proto.ims.XMMsgBindResp.toObject=function(a,b){var c={result:jspb.Message.getField(b,1),errorType:jspb.Message.getField(b,2),errorReason:jspb.Message.getField(b,3),errorDesc:jspb.Message.getField(b,4)};a&&(c.$jspbMessageInstance=b);return c});
+proto.ims.XMMsgBindResp.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.ims.XMMsgBindResp;return proto.ims.XMMsgBindResp.deserializeBinaryFromReader(b,a)};
+proto.ims.XMMsgBindResp.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readBool();a.setResult(c);break;case 2:c=b.readString();a.setErrorType(c);break;case 3:c=b.readString();a.setErrorReason(c);break;case 4:c=b.readString();a.setErrorDesc(c);break;default:b.skipField()}return a};proto.ims.XMMsgBindResp.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.ims.XMMsgBindResp.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.ims.XMMsgBindResp.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeBool(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeString(4,c)};proto.ims.XMMsgBindResp.prototype.getResult=function(){return jspb.Message.getFieldWithDefault(this,1,!1)};proto.ims.XMMsgBindResp.prototype.setResult=function(a){jspb.Message.setField(this,1,a)};
+proto.ims.XMMsgBindResp.prototype.clearResult=function(){jspb.Message.setField(this,1,void 0)};proto.ims.XMMsgBindResp.prototype.hasResult=function(){return null!=jspb.Message.getField(this,1)};proto.ims.XMMsgBindResp.prototype.getErrorType=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.ims.XMMsgBindResp.prototype.setErrorType=function(a){jspb.Message.setField(this,2,a)};proto.ims.XMMsgBindResp.prototype.clearErrorType=function(){jspb.Message.setField(this,2,void 0)};
+proto.ims.XMMsgBindResp.prototype.hasErrorType=function(){return null!=jspb.Message.getField(this,2)};proto.ims.XMMsgBindResp.prototype.getErrorReason=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.ims.XMMsgBindResp.prototype.setErrorReason=function(a){jspb.Message.setField(this,3,a)};proto.ims.XMMsgBindResp.prototype.clearErrorReason=function(){jspb.Message.setField(this,3,void 0)};
+proto.ims.XMMsgBindResp.prototype.hasErrorReason=function(){return null!=jspb.Message.getField(this,3)};proto.ims.XMMsgBindResp.prototype.getErrorDesc=function(){return jspb.Message.getFieldWithDefault(this,4,"")};proto.ims.XMMsgBindResp.prototype.setErrorDesc=function(a){jspb.Message.setField(this,4,a)};proto.ims.XMMsgBindResp.prototype.clearErrorDesc=function(){jspb.Message.setField(this,4,void 0)};
+proto.ims.XMMsgBindResp.prototype.hasErrorDesc=function(){return null!=jspb.Message.getField(this,4)};proto.ims.XMMsgPing=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.ims.XMMsgPing,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.ims.XMMsgPing.displayName="proto.ims.XMMsgPing");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.ims.XMMsgPing.prototype.toObject=function(a){return proto.ims.XMMsgPing.toObject(a,this)},proto.ims.XMMsgPing.toObject=function(a,b){var c,d={stats:b.getStats_asB64(),psc:(c=b.getPsc())&&proto.protocol.PushServiceConfigMsg.toObject(a,c)};a&&(d.$jspbMessageInstance=b);return d});proto.ims.XMMsgPing.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.ims.XMMsgPing;return proto.ims.XMMsgPing.deserializeBinaryFromReader(b,a)};
+proto.ims.XMMsgPing.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readBytes();a.setStats(c);break;case 2:c=new proto.protocol.PushServiceConfigMsg;b.readMessage(c,proto.protocol.PushServiceConfigMsg.deserializeBinaryFromReader);a.setPsc(c);break;default:b.skipField()}return a};proto.ims.XMMsgPing.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.ims.XMMsgPing.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.ims.XMMsgPing.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeBytes(1,c);c=a.getPsc();null!=c&&b.writeMessage(2,c,proto.protocol.PushServiceConfigMsg.serializeBinaryToWriter)};proto.ims.XMMsgPing.prototype.getStats=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.ims.XMMsgPing.prototype.getStats_asB64=function(){return jspb.Message.bytesAsB64(this.getStats())};proto.ims.XMMsgPing.prototype.getStats_asU8=function(){return jspb.Message.bytesAsU8(this.getStats())};
+proto.ims.XMMsgPing.prototype.setStats=function(a){jspb.Message.setField(this,1,a)};proto.ims.XMMsgPing.prototype.clearStats=function(){jspb.Message.setField(this,1,void 0)};proto.ims.XMMsgPing.prototype.hasStats=function(){return null!=jspb.Message.getField(this,1)};proto.ims.XMMsgPing.prototype.getPsc=function(){return jspb.Message.getWrapperField(this,proto.protocol.PushServiceConfigMsg,2)};proto.ims.XMMsgPing.prototype.setPsc=function(a){jspb.Message.setWrapperField(this,2,a)};
+proto.ims.XMMsgPing.prototype.clearPsc=function(){this.setPsc(void 0)};proto.ims.XMMsgPing.prototype.hasPsc=function(){return null!=jspb.Message.getField(this,2)};proto.ims.XMMsgNotify=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.ims.XMMsgNotify,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.ims.XMMsgNotify.displayName="proto.ims.XMMsgNotify");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.ims.XMMsgNotify.prototype.toObject=function(a){return proto.ims.XMMsgNotify.toObject(a,this)},proto.ims.XMMsgNotify.toObject=function(a,b){var c={errCode:jspb.Message.getField(b,1),errStr:jspb.Message.getField(b,2)};a&&(c.$jspbMessageInstance=b);return c});proto.ims.XMMsgNotify.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.ims.XMMsgNotify;return proto.ims.XMMsgNotify.deserializeBinaryFromReader(b,a)};
+proto.ims.XMMsgNotify.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt32();a.setErrCode(c);break;case 2:c=b.readString();a.setErrStr(c);break;default:b.skipField()}return a};proto.ims.XMMsgNotify.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.ims.XMMsgNotify.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.ims.XMMsgNotify.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt32(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c)};proto.ims.XMMsgNotify.prototype.getErrCode=function(){return jspb.Message.getFieldWithDefault(this,1,0)};proto.ims.XMMsgNotify.prototype.setErrCode=function(a){jspb.Message.setField(this,1,a)};proto.ims.XMMsgNotify.prototype.clearErrCode=function(){jspb.Message.setField(this,1,void 0)};
+proto.ims.XMMsgNotify.prototype.hasErrCode=function(){return null!=jspb.Message.getField(this,1)};proto.ims.XMMsgNotify.prototype.getErrStr=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.ims.XMMsgNotify.prototype.setErrStr=function(a){jspb.Message.setField(this,2,a)};proto.ims.XMMsgNotify.prototype.clearErrStr=function(){jspb.Message.setField(this,2,void 0)};proto.ims.XMMsgNotify.prototype.hasErrStr=function(){return null!=jspb.Message.getField(this,2)};proto.FilterRequest=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.FilterRequest,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.FilterRequest.displayName="proto.FilterRequest");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.FilterRequest.prototype.toObject=function(a){return proto.FilterRequest.toObject(a,this)},proto.FilterRequest.toObject=function(a,b){var c,d={id:jspb.Message.getField(b,1),packet:(c=b.getPacket())&&proto.MIMCPacket.toObject(a,c)};a&&(d.$jspbMessageInstance=b);return d});proto.FilterRequest.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.FilterRequest;return proto.FilterRequest.deserializeBinaryFromReader(b,a)};
+proto.FilterRequest.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readString();a.setId(c);break;case 2:c=new proto.MIMCPacket;b.readMessage(c,proto.MIMCPacket.deserializeBinaryFromReader);a.setPacket(c);break;default:b.skipField()}return a};proto.FilterRequest.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.FilterRequest.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.FilterRequest.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeString(1,c);c=a.getPacket();null!=c&&b.writeMessage(2,c,proto.MIMCPacket.serializeBinaryToWriter)};proto.FilterRequest.prototype.getId=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.FilterRequest.prototype.setId=function(a){jspb.Message.setField(this,1,a)};proto.FilterRequest.prototype.clearId=function(){jspb.Message.setField(this,1,void 0)};
+proto.FilterRequest.prototype.hasId=function(){return null!=jspb.Message.getField(this,1)};proto.FilterRequest.prototype.getPacket=function(){return jspb.Message.getWrapperField(this,proto.MIMCPacket,2,1)};proto.FilterRequest.prototype.setPacket=function(a){jspb.Message.setWrapperField(this,2,a)};proto.FilterRequest.prototype.clearPacket=function(){jspb.Message.setField(this,2,void 0)};proto.FilterRequest.prototype.hasPacket=function(){return null!=jspb.Message.getField(this,2)};
+proto.FilterResponse=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.FilterResponse,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.FilterResponse.displayName="proto.FilterResponse");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.FilterResponse.prototype.toObject=function(a){return proto.FilterResponse.toObject(a,this)},proto.FilterResponse.toObject=function(a,b){var c={id:jspb.Message.getField(b,1),type:jspb.Message.getField(b,2),errorcode:jspb.Message.getField(b,3),isfilter:jspb.Message.getField(b,4)};a&&(c.$jspbMessageInstance=b);return c});
+proto.FilterResponse.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.FilterResponse;return proto.FilterResponse.deserializeBinaryFromReader(b,a)};proto.FilterResponse.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readString();a.setId(c);break;case 2:c=b.readEnum();a.setType(c);break;case 3:c=b.readEnum();a.setErrorcode(c);break;case 4:c=b.readBool();a.setIsfilter(c);break;default:b.skipField()}return a};
+proto.FilterResponse.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.FilterResponse.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.FilterResponse.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeString(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeEnum(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeEnum(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeBool(4,c)};
+proto.FilterResponse.prototype.getId=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.FilterResponse.prototype.setId=function(a){jspb.Message.setField(this,1,a)};proto.FilterResponse.prototype.clearId=function(){jspb.Message.setField(this,1,void 0)};proto.FilterResponse.prototype.hasId=function(){return null!=jspb.Message.getField(this,1)};proto.FilterResponse.prototype.getType=function(){return jspb.Message.getFieldWithDefault(this,2,1)};
+proto.FilterResponse.prototype.setType=function(a){jspb.Message.setField(this,2,a)};proto.FilterResponse.prototype.clearType=function(){jspb.Message.setField(this,2,void 0)};proto.FilterResponse.prototype.hasType=function(){return null!=jspb.Message.getField(this,2)};proto.FilterResponse.prototype.getErrorcode=function(){return jspb.Message.getFieldWithDefault(this,3,0)};proto.FilterResponse.prototype.setErrorcode=function(a){jspb.Message.setField(this,3,a)};
+proto.FilterResponse.prototype.clearErrorcode=function(){jspb.Message.setField(this,3,void 0)};proto.FilterResponse.prototype.hasErrorcode=function(){return null!=jspb.Message.getField(this,3)};proto.FilterResponse.prototype.getIsfilter=function(){return jspb.Message.getFieldWithDefault(this,4,!1)};proto.FilterResponse.prototype.setIsfilter=function(a){jspb.Message.setField(this,4,a)};proto.FilterResponse.prototype.clearIsfilter=function(){jspb.Message.setField(this,4,void 0)};
+proto.FilterResponse.prototype.hasIsfilter=function(){return null!=jspb.Message.getField(this,4)};proto.PullMessageRequest=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.PullMessageRequest,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.PullMessageRequest.displayName="proto.PullMessageRequest");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.PullMessageRequest.prototype.toObject=function(a){return proto.PullMessageRequest.toObject(a,this)},proto.PullMessageRequest.toObject=function(a,b){var c={uuid:jspb.Message.getField(b,1),resource:jspb.Message.getField(b,2)};a&&(c.$jspbMessageInstance=b);return c});proto.PullMessageRequest.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.PullMessageRequest;return proto.PullMessageRequest.deserializeBinaryFromReader(b,a)};
+proto.PullMessageRequest.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readUint64String();a.setUuid(c);break;case 2:c=b.readString();a.setResource(c);break;default:b.skipField()}return a};proto.PullMessageRequest.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.PullMessageRequest.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.PullMessageRequest.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeUint64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c)};proto.PullMessageRequest.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.PullMessageRequest.prototype.setUuid=function(a){jspb.Message.setField(this,1,a)};proto.PullMessageRequest.prototype.clearUuid=function(){jspb.Message.setField(this,1,void 0)};
+proto.PullMessageRequest.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,1)};proto.PullMessageRequest.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.PullMessageRequest.prototype.setResource=function(a){jspb.Message.setField(this,2,a)};proto.PullMessageRequest.prototype.clearResource=function(){jspb.Message.setField(this,2,void 0)};proto.PullMessageRequest.prototype.hasResource=function(){return null!=jspb.Message.getField(this,2)};
+proto.TopicMessage=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.TopicMessage,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.TopicMessage.displayName="proto.TopicMessage");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.TopicMessage.prototype.toObject=function(a){return proto.TopicMessage.toObject(a,this)},proto.TopicMessage.toObject=function(a,b){var c,d={topicid:jspb.Message.getField(b,1),packet:(c=b.getPacket())&&proto.MIMCPacket.toObject(a,c),uuid:jspb.Message.getField(b,3),resource:jspb.Message.getField(b,4)};a&&(d.$jspbMessageInstance=b);return d});
+proto.TopicMessage.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.TopicMessage;return proto.TopicMessage.deserializeBinaryFromReader(b,a)};
+proto.TopicMessage.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readUint64String();a.setTopicid(c);break;case 2:c=new proto.MIMCPacket;b.readMessage(c,proto.MIMCPacket.deserializeBinaryFromReader);a.setPacket(c);break;case 3:c=b.readInt64String();a.setUuid(c);break;case 4:c=b.readString();a.setResource(c);break;default:b.skipField()}return a};
+proto.TopicMessage.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.TopicMessage.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.TopicMessage.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeUint64String(1,c);c=a.getPacket();null!=c&&b.writeMessage(2,c,proto.MIMCPacket.serializeBinaryToWriter);c=jspb.Message.getField(a,3);null!=c&&b.writeInt64String(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeString(4,c)};
+proto.TopicMessage.prototype.getTopicid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.TopicMessage.prototype.setTopicid=function(a){jspb.Message.setField(this,1,a)};proto.TopicMessage.prototype.clearTopicid=function(){jspb.Message.setField(this,1,void 0)};proto.TopicMessage.prototype.hasTopicid=function(){return null!=jspb.Message.getField(this,1)};proto.TopicMessage.prototype.getPacket=function(){return jspb.Message.getWrapperField(this,proto.MIMCPacket,2,1)};
+proto.TopicMessage.prototype.setPacket=function(a){jspb.Message.setWrapperField(this,2,a)};proto.TopicMessage.prototype.clearPacket=function(){jspb.Message.setField(this,2,void 0)};proto.TopicMessage.prototype.hasPacket=function(){return null!=jspb.Message.getField(this,2)};proto.TopicMessage.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,3,"0")};proto.TopicMessage.prototype.setUuid=function(a){jspb.Message.setField(this,3,a)};
+proto.TopicMessage.prototype.clearUuid=function(){jspb.Message.setField(this,3,void 0)};proto.TopicMessage.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,3)};proto.TopicMessage.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,4,"")};proto.TopicMessage.prototype.setResource=function(a){jspb.Message.setField(this,4,a)};proto.TopicMessage.prototype.clearResource=function(){jspb.Message.setField(this,4,void 0)};
+proto.TopicMessage.prototype.hasResource=function(){return null!=jspb.Message.getField(this,4)};proto.QueryAppinfoRequest=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.QueryAppinfoRequest,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.QueryAppinfoRequest.displayName="proto.QueryAppinfoRequest");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.QueryAppinfoRequest.prototype.toObject=function(a){return proto.QueryAppinfoRequest.toObject(a,this)},proto.QueryAppinfoRequest.toObject=function(a,b){var c={appid:jspb.Message.getField(b,1),context:jspb.Message.getField(b,2)};a&&(c.$jspbMessageInstance=b);return c});proto.QueryAppinfoRequest.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.QueryAppinfoRequest;return proto.QueryAppinfoRequest.deserializeBinaryFromReader(b,a)};
+proto.QueryAppinfoRequest.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readUint64String();a.setAppid(c);break;case 2:c=b.readString();a.setContext(c);break;default:b.skipField()}return a};proto.QueryAppinfoRequest.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.QueryAppinfoRequest.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.QueryAppinfoRequest.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeUint64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c)};proto.QueryAppinfoRequest.prototype.getAppid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.QueryAppinfoRequest.prototype.setAppid=function(a){jspb.Message.setField(this,1,a)};proto.QueryAppinfoRequest.prototype.clearAppid=function(){jspb.Message.setField(this,1,void 0)};
+proto.QueryAppinfoRequest.prototype.hasAppid=function(){return null!=jspb.Message.getField(this,1)};proto.QueryAppinfoRequest.prototype.getContext=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.QueryAppinfoRequest.prototype.setContext=function(a){jspb.Message.setField(this,2,a)};proto.QueryAppinfoRequest.prototype.clearContext=function(){jspb.Message.setField(this,2,void 0)};proto.QueryAppinfoRequest.prototype.hasContext=function(){return null!=jspb.Message.getField(this,2)};
+proto.Appinfo=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.Appinfo,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.Appinfo.displayName="proto.Appinfo");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.Appinfo.prototype.toObject=function(a){return proto.Appinfo.toObject(a,this)},proto.Appinfo.toObject=function(a,b){var c={appid:jspb.Message.getField(b,1),msgcallbackurl:jspb.Message.getField(b,2),offlinemsgcallbackurl:jspb.Message.getField(b,3),uuidttl:jspb.Message.getField(b,4),context:jspb.Message.getField(b,5),messagefilter:jspb.Message.getField(b,6),ucmsgcallbackurl:jspb.Message.getField(b,7)};a&&(c.$jspbMessageInstance=b);return c});
+proto.Appinfo.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.Appinfo;return proto.Appinfo.deserializeBinaryFromReader(b,a)};
+proto.Appinfo.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readUint64String();a.setAppid(c);break;case 2:c=b.readString();a.setMsgcallbackurl(c);break;case 3:c=b.readString();a.setOfflinemsgcallbackurl(c);break;case 4:c=b.readUint64String();a.setUuidttl(c);break;case 5:c=b.readString();a.setContext(c);break;case 6:c=b.readString();a.setMessagefilter(c);break;case 7:c=b.readString();a.setUcmsgcallbackurl(c);break;default:b.skipField()}return a};
+proto.Appinfo.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.Appinfo.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.Appinfo.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeUint64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeUint64String(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeString(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeString(6,c);c=jspb.Message.getField(a,7);null!=c&&b.writeString(7,c)};
+proto.Appinfo.prototype.getAppid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.Appinfo.prototype.setAppid=function(a){jspb.Message.setField(this,1,a)};proto.Appinfo.prototype.clearAppid=function(){jspb.Message.setField(this,1,void 0)};proto.Appinfo.prototype.hasAppid=function(){return null!=jspb.Message.getField(this,1)};proto.Appinfo.prototype.getMsgcallbackurl=function(){return jspb.Message.getFieldWithDefault(this,2,"")};
+proto.Appinfo.prototype.setMsgcallbackurl=function(a){jspb.Message.setField(this,2,a)};proto.Appinfo.prototype.clearMsgcallbackurl=function(){jspb.Message.setField(this,2,void 0)};proto.Appinfo.prototype.hasMsgcallbackurl=function(){return null!=jspb.Message.getField(this,2)};proto.Appinfo.prototype.getOfflinemsgcallbackurl=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.Appinfo.prototype.setOfflinemsgcallbackurl=function(a){jspb.Message.setField(this,3,a)};
+proto.Appinfo.prototype.clearOfflinemsgcallbackurl=function(){jspb.Message.setField(this,3,void 0)};proto.Appinfo.prototype.hasOfflinemsgcallbackurl=function(){return null!=jspb.Message.getField(this,3)};proto.Appinfo.prototype.getUuidttl=function(){return jspb.Message.getFieldWithDefault(this,4,"0")};proto.Appinfo.prototype.setUuidttl=function(a){jspb.Message.setField(this,4,a)};proto.Appinfo.prototype.clearUuidttl=function(){jspb.Message.setField(this,4,void 0)};
+proto.Appinfo.prototype.hasUuidttl=function(){return null!=jspb.Message.getField(this,4)};proto.Appinfo.prototype.getContext=function(){return jspb.Message.getFieldWithDefault(this,5,"")};proto.Appinfo.prototype.setContext=function(a){jspb.Message.setField(this,5,a)};proto.Appinfo.prototype.clearContext=function(){jspb.Message.setField(this,5,void 0)};proto.Appinfo.prototype.hasContext=function(){return null!=jspb.Message.getField(this,5)};
+proto.Appinfo.prototype.getMessagefilter=function(){return jspb.Message.getFieldWithDefault(this,6,"")};proto.Appinfo.prototype.setMessagefilter=function(a){jspb.Message.setField(this,6,a)};proto.Appinfo.prototype.clearMessagefilter=function(){jspb.Message.setField(this,6,void 0)};proto.Appinfo.prototype.hasMessagefilter=function(){return null!=jspb.Message.getField(this,6)};proto.Appinfo.prototype.getUcmsgcallbackurl=function(){return jspb.Message.getFieldWithDefault(this,7,"")};
+proto.Appinfo.prototype.setUcmsgcallbackurl=function(a){jspb.Message.setField(this,7,a)};proto.Appinfo.prototype.clearUcmsgcallbackurl=function(){jspb.Message.setField(this,7,void 0)};proto.Appinfo.prototype.hasUcmsgcallbackurl=function(){return null!=jspb.Message.getField(this,7)};proto.MIMCPacket=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCPacket,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCPacket.displayName="proto.MIMCPacket");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCPacket.prototype.toObject=function(a){return proto.MIMCPacket.toObject(a,this)},proto.MIMCPacket.toObject=function(a,b){var c={packetid:jspb.Message.getField(b,1),pb_package:jspb.Message.getField(b,2),sequence:jspb.Message.getField(b,3),type:jspb.Message.getField(b,4),payload:b.getPayload_asB64(),timestamp:jspb.Message.getField(b,6)};a&&(c.$jspbMessageInstance=b);return c});
+proto.MIMCPacket.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCPacket;return proto.MIMCPacket.deserializeBinaryFromReader(b,a)};
+proto.MIMCPacket.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readString();a.setPacketid(c);break;case 2:c=b.readString();a.setPackage(c);break;case 3:c=b.readInt64String();a.setSequence(c);break;case 4:c=b.readEnum();a.setType(c);break;case 5:c=b.readBytes();a.setPayload(c);break;case 6:c=b.readInt64String();a.setTimestamp(c);break;default:b.skipField()}return a};
+proto.MIMCPacket.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCPacket.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.MIMCPacket.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeString(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeInt64String(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeEnum(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeBytes(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeInt64String(6,c)};
+proto.MIMCPacket.prototype.getPacketid=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.MIMCPacket.prototype.setPacketid=function(a){jspb.Message.setField(this,1,a)};proto.MIMCPacket.prototype.clearPacketid=function(){jspb.Message.setField(this,1,void 0)};proto.MIMCPacket.prototype.hasPacketid=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCPacket.prototype.getPackage=function(){return jspb.Message.getFieldWithDefault(this,2,"")};
+proto.MIMCPacket.prototype.setPackage=function(a){jspb.Message.setField(this,2,a)};proto.MIMCPacket.prototype.clearPackage=function(){jspb.Message.setField(this,2,void 0)};proto.MIMCPacket.prototype.hasPackage=function(){return null!=jspb.Message.getField(this,2)};proto.MIMCPacket.prototype.getSequence=function(){return jspb.Message.getFieldWithDefault(this,3,"0")};proto.MIMCPacket.prototype.setSequence=function(a){jspb.Message.setField(this,3,a)};
+proto.MIMCPacket.prototype.clearSequence=function(){jspb.Message.setField(this,3,void 0)};proto.MIMCPacket.prototype.hasSequence=function(){return null!=jspb.Message.getField(this,3)};proto.MIMCPacket.prototype.getType=function(){return jspb.Message.getFieldWithDefault(this,4,1)};proto.MIMCPacket.prototype.setType=function(a){jspb.Message.setField(this,4,a)};proto.MIMCPacket.prototype.clearType=function(){jspb.Message.setField(this,4,void 0)};
+proto.MIMCPacket.prototype.hasType=function(){return null!=jspb.Message.getField(this,4)};proto.MIMCPacket.prototype.getPayload=function(){return jspb.Message.getFieldWithDefault(this,5,"")};proto.MIMCPacket.prototype.getPayload_asB64=function(){return jspb.Message.bytesAsB64(this.getPayload())};proto.MIMCPacket.prototype.getPayload_asU8=function(){return jspb.Message.bytesAsU8(this.getPayload())};proto.MIMCPacket.prototype.setPayload=function(a){jspb.Message.setField(this,5,a)};
+proto.MIMCPacket.prototype.clearPayload=function(){jspb.Message.setField(this,5,void 0)};proto.MIMCPacket.prototype.hasPayload=function(){return null!=jspb.Message.getField(this,5)};proto.MIMCPacket.prototype.getTimestamp=function(){return jspb.Message.getFieldWithDefault(this,6,"0")};proto.MIMCPacket.prototype.setTimestamp=function(a){jspb.Message.setField(this,6,a)};proto.MIMCPacket.prototype.clearTimestamp=function(){jspb.Message.setField(this,6,void 0)};
+proto.MIMCPacket.prototype.hasTimestamp=function(){return null!=jspb.Message.getField(this,6)};proto.MIMCPacketList=function(a){jspb.Message.initialize(this,a,0,-1,proto.MIMCPacketList.repeatedFields_,null)};goog.inherits(proto.MIMCPacketList,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCPacketList.displayName="proto.MIMCPacketList");proto.MIMCPacketList.repeatedFields_=[4];
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCPacketList.prototype.toObject=function(a){return proto.MIMCPacketList.toObject(a,this)},proto.MIMCPacketList.toObject=function(a,b){var c={uuid:jspb.Message.getField(b,1),resource:jspb.Message.getField(b,2),maxsequence:jspb.Message.getField(b,3),packetsList:jspb.Message.toObjectList(b.getPacketsList(),proto.MIMCPacket.toObject,a)};a&&(c.$jspbMessageInstance=b);return c});
+proto.MIMCPacketList.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCPacketList;return proto.MIMCPacketList.deserializeBinaryFromReader(b,a)};
+proto.MIMCPacketList.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt64String();a.setUuid(c);break;case 2:c=b.readString();a.setResource(c);break;case 3:c=b.readInt64String();a.setMaxsequence(c);break;case 4:c=new proto.MIMCPacket;b.readMessage(c,proto.MIMCPacket.deserializeBinaryFromReader);a.addPackets(c);break;default:b.skipField()}return a};
+proto.MIMCPacketList.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCPacketList.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.MIMCPacketList.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeInt64String(3,c);c=a.getPacketsList();0<c.length&&b.writeRepeatedMessage(4,c,proto.MIMCPacket.serializeBinaryToWriter)};
+proto.MIMCPacketList.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.MIMCPacketList.prototype.setUuid=function(a){jspb.Message.setField(this,1,a)};proto.MIMCPacketList.prototype.clearUuid=function(){jspb.Message.setField(this,1,void 0)};proto.MIMCPacketList.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCPacketList.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,2,"")};
+proto.MIMCPacketList.prototype.setResource=function(a){jspb.Message.setField(this,2,a)};proto.MIMCPacketList.prototype.clearResource=function(){jspb.Message.setField(this,2,void 0)};proto.MIMCPacketList.prototype.hasResource=function(){return null!=jspb.Message.getField(this,2)};proto.MIMCPacketList.prototype.getMaxsequence=function(){return jspb.Message.getFieldWithDefault(this,3,"0")};proto.MIMCPacketList.prototype.setMaxsequence=function(a){jspb.Message.setField(this,3,a)};
+proto.MIMCPacketList.prototype.clearMaxsequence=function(){jspb.Message.setField(this,3,void 0)};proto.MIMCPacketList.prototype.hasMaxsequence=function(){return null!=jspb.Message.getField(this,3)};proto.MIMCPacketList.prototype.getPacketsList=function(){return jspb.Message.getRepeatedWrapperField(this,proto.MIMCPacket,4)};proto.MIMCPacketList.prototype.setPacketsList=function(a){jspb.Message.setRepeatedWrapperField(this,4,a)};
+proto.MIMCPacketList.prototype.addPackets=function(a,b){return jspb.Message.addToRepeatedWrapperField(this,4,a,proto.MIMCPacket,b)};proto.MIMCPacketList.prototype.clearPacketsList=function(){this.setPacketsList([])};proto.MIMCPacketAck=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCPacketAck,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCPacketAck.displayName="proto.MIMCPacketAck");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCPacketAck.prototype.toObject=function(a){return proto.MIMCPacketAck.toObject(a,this)},proto.MIMCPacketAck.toObject=function(a,b){var c={packetid:jspb.Message.getField(b,1),uuid:jspb.Message.getField(b,2),resource:jspb.Message.getField(b,3),sequence:jspb.Message.getField(b,4),timestamp:jspb.Message.getField(b,5),pb_package:jspb.Message.getField(b,6),errormsg:jspb.Message.getField(b,7)};a&&(c.$jspbMessageInstance=b);return c});
+proto.MIMCPacketAck.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCPacketAck;return proto.MIMCPacketAck.deserializeBinaryFromReader(b,a)};
+proto.MIMCPacketAck.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readString();a.setPacketid(c);break;case 2:c=b.readInt64String();a.setUuid(c);break;case 3:c=b.readString();a.setResource(c);break;case 4:c=b.readInt64String();a.setSequence(c);break;case 5:c=b.readInt64String();a.setTimestamp(c);break;case 6:c=b.readString();a.setPackage(c);break;case 7:c=b.readString();a.setErrormsg(c);break;default:b.skipField()}return a};
+proto.MIMCPacketAck.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCPacketAck.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.MIMCPacketAck.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeString(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeInt64String(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeInt64String(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeInt64String(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeString(6,c);c=jspb.Message.getField(a,7);null!=c&&b.writeString(7,c)};
+proto.MIMCPacketAck.prototype.getPacketid=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.MIMCPacketAck.prototype.setPacketid=function(a){jspb.Message.setField(this,1,a)};proto.MIMCPacketAck.prototype.clearPacketid=function(){jspb.Message.setField(this,1,void 0)};proto.MIMCPacketAck.prototype.hasPacketid=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCPacketAck.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,2,"0")};
+proto.MIMCPacketAck.prototype.setUuid=function(a){jspb.Message.setField(this,2,a)};proto.MIMCPacketAck.prototype.clearUuid=function(){jspb.Message.setField(this,2,void 0)};proto.MIMCPacketAck.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,2)};proto.MIMCPacketAck.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.MIMCPacketAck.prototype.setResource=function(a){jspb.Message.setField(this,3,a)};
+proto.MIMCPacketAck.prototype.clearResource=function(){jspb.Message.setField(this,3,void 0)};proto.MIMCPacketAck.prototype.hasResource=function(){return null!=jspb.Message.getField(this,3)};proto.MIMCPacketAck.prototype.getSequence=function(){return jspb.Message.getFieldWithDefault(this,4,"0")};proto.MIMCPacketAck.prototype.setSequence=function(a){jspb.Message.setField(this,4,a)};proto.MIMCPacketAck.prototype.clearSequence=function(){jspb.Message.setField(this,4,void 0)};
+proto.MIMCPacketAck.prototype.hasSequence=function(){return null!=jspb.Message.getField(this,4)};proto.MIMCPacketAck.prototype.getTimestamp=function(){return jspb.Message.getFieldWithDefault(this,5,"0")};proto.MIMCPacketAck.prototype.setTimestamp=function(a){jspb.Message.setField(this,5,a)};proto.MIMCPacketAck.prototype.clearTimestamp=function(){jspb.Message.setField(this,5,void 0)};proto.MIMCPacketAck.prototype.hasTimestamp=function(){return null!=jspb.Message.getField(this,5)};
+proto.MIMCPacketAck.prototype.getPackage=function(){return jspb.Message.getFieldWithDefault(this,6,"")};proto.MIMCPacketAck.prototype.setPackage=function(a){jspb.Message.setField(this,6,a)};proto.MIMCPacketAck.prototype.clearPackage=function(){jspb.Message.setField(this,6,void 0)};proto.MIMCPacketAck.prototype.hasPackage=function(){return null!=jspb.Message.getField(this,6)};proto.MIMCPacketAck.prototype.getErrormsg=function(){return jspb.Message.getFieldWithDefault(this,7,"")};
+proto.MIMCPacketAck.prototype.setErrormsg=function(a){jspb.Message.setField(this,7,a)};proto.MIMCPacketAck.prototype.clearErrormsg=function(){jspb.Message.setField(this,7,void 0)};proto.MIMCPacketAck.prototype.hasErrormsg=function(){return null!=jspb.Message.getField(this,7)};proto.MIMCP2PMessage=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCP2PMessage,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCP2PMessage.displayName="proto.MIMCP2PMessage");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCP2PMessage.prototype.toObject=function(a){return proto.MIMCP2PMessage.toObject(a,this)},proto.MIMCP2PMessage.toObject=function(a,b){var c,d={from:(c=b.getFrom())&&proto.MIMCUser.toObject(a,c),to:(c=b.getTo())&&proto.MIMCUser.toObject(a,c),payload:b.getPayload_asB64(),isstore:jspb.Message.getField(b,4),biztype:jspb.Message.getField(b,5)};a&&(d.$jspbMessageInstance=b);return d});
+proto.MIMCP2PMessage.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCP2PMessage;return proto.MIMCP2PMessage.deserializeBinaryFromReader(b,a)};
+proto.MIMCP2PMessage.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setFrom(c);break;case 2:c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setTo(c);break;case 3:c=b.readBytes();a.setPayload(c);break;case 4:c=b.readBool();a.setIsstore(c);break;case 5:c=b.readString();a.setBiztype(c);break;default:b.skipField()}return a};
+proto.MIMCP2PMessage.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCP2PMessage.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.MIMCP2PMessage.serializeBinaryToWriter=function(a,b){var c=a.getFrom();null!=c&&b.writeMessage(1,c,proto.MIMCUser.serializeBinaryToWriter);c=a.getTo();null!=c&&b.writeMessage(2,c,proto.MIMCUser.serializeBinaryToWriter);c=jspb.Message.getField(a,3);null!=c&&b.writeBytes(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeBool(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeString(5,c)};proto.MIMCP2PMessage.prototype.getFrom=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,1)};
+proto.MIMCP2PMessage.prototype.setFrom=function(a){jspb.Message.setWrapperField(this,1,a)};proto.MIMCP2PMessage.prototype.clearFrom=function(){this.setFrom(void 0)};proto.MIMCP2PMessage.prototype.hasFrom=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCP2PMessage.prototype.getTo=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,2)};proto.MIMCP2PMessage.prototype.setTo=function(a){jspb.Message.setWrapperField(this,2,a)};proto.MIMCP2PMessage.prototype.clearTo=function(){this.setTo(void 0)};
+proto.MIMCP2PMessage.prototype.hasTo=function(){return null!=jspb.Message.getField(this,2)};proto.MIMCP2PMessage.prototype.getPayload=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.MIMCP2PMessage.prototype.getPayload_asB64=function(){return jspb.Message.bytesAsB64(this.getPayload())};proto.MIMCP2PMessage.prototype.getPayload_asU8=function(){return jspb.Message.bytesAsU8(this.getPayload())};proto.MIMCP2PMessage.prototype.setPayload=function(a){jspb.Message.setField(this,3,a)};
+proto.MIMCP2PMessage.prototype.clearPayload=function(){jspb.Message.setField(this,3,void 0)};proto.MIMCP2PMessage.prototype.hasPayload=function(){return null!=jspb.Message.getField(this,3)};proto.MIMCP2PMessage.prototype.getIsstore=function(){return jspb.Message.getFieldWithDefault(this,4,!1)};proto.MIMCP2PMessage.prototype.setIsstore=function(a){jspb.Message.setField(this,4,a)};proto.MIMCP2PMessage.prototype.clearIsstore=function(){jspb.Message.setField(this,4,void 0)};
+proto.MIMCP2PMessage.prototype.hasIsstore=function(){return null!=jspb.Message.getField(this,4)};proto.MIMCP2PMessage.prototype.getBiztype=function(){return jspb.Message.getFieldWithDefault(this,5,"")};proto.MIMCP2PMessage.prototype.setBiztype=function(a){jspb.Message.setField(this,5,a)};proto.MIMCP2PMessage.prototype.clearBiztype=function(){jspb.Message.setField(this,5,void 0)};proto.MIMCP2PMessage.prototype.hasBiztype=function(){return null!=jspb.Message.getField(this,5)};
+proto.MIMCP2TMessage=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCP2TMessage,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCP2TMessage.displayName="proto.MIMCP2TMessage");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCP2TMessage.prototype.toObject=function(a){return proto.MIMCP2TMessage.toObject(a,this)},proto.MIMCP2TMessage.toObject=function(a,b){var c,d={from:(c=b.getFrom())&&proto.MIMCUser.toObject(a,c),to:(c=b.getTo())&&proto.MIMCGroup.toObject(a,c),payload:b.getPayload_asB64(),isstore:jspb.Message.getField(b,4),biztype:jspb.Message.getField(b,5)};a&&(d.$jspbMessageInstance=b);return d});
+proto.MIMCP2TMessage.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCP2TMessage;return proto.MIMCP2TMessage.deserializeBinaryFromReader(b,a)};
+proto.MIMCP2TMessage.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setFrom(c);break;case 2:c=new proto.MIMCGroup;b.readMessage(c,proto.MIMCGroup.deserializeBinaryFromReader);a.setTo(c);break;case 3:c=b.readBytes();a.setPayload(c);break;case 4:c=b.readBool();a.setIsstore(c);break;case 5:c=b.readString();a.setBiztype(c);break;default:b.skipField()}return a};
+proto.MIMCP2TMessage.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCP2TMessage.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.MIMCP2TMessage.serializeBinaryToWriter=function(a,b){var c=a.getFrom();null!=c&&b.writeMessage(1,c,proto.MIMCUser.serializeBinaryToWriter);c=a.getTo();null!=c&&b.writeMessage(2,c,proto.MIMCGroup.serializeBinaryToWriter);c=jspb.Message.getField(a,3);null!=c&&b.writeBytes(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeBool(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeString(5,c)};
+proto.MIMCP2TMessage.prototype.getFrom=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,1)};proto.MIMCP2TMessage.prototype.setFrom=function(a){jspb.Message.setWrapperField(this,1,a)};proto.MIMCP2TMessage.prototype.clearFrom=function(){this.setFrom(void 0)};proto.MIMCP2TMessage.prototype.hasFrom=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCP2TMessage.prototype.getTo=function(){return jspb.Message.getWrapperField(this,proto.MIMCGroup,2)};
+proto.MIMCP2TMessage.prototype.setTo=function(a){jspb.Message.setWrapperField(this,2,a)};proto.MIMCP2TMessage.prototype.clearTo=function(){this.setTo(void 0)};proto.MIMCP2TMessage.prototype.hasTo=function(){return null!=jspb.Message.getField(this,2)};proto.MIMCP2TMessage.prototype.getPayload=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.MIMCP2TMessage.prototype.getPayload_asB64=function(){return jspb.Message.bytesAsB64(this.getPayload())};
+proto.MIMCP2TMessage.prototype.getPayload_asU8=function(){return jspb.Message.bytesAsU8(this.getPayload())};proto.MIMCP2TMessage.prototype.setPayload=function(a){jspb.Message.setField(this,3,a)};proto.MIMCP2TMessage.prototype.clearPayload=function(){jspb.Message.setField(this,3,void 0)};proto.MIMCP2TMessage.prototype.hasPayload=function(){return null!=jspb.Message.getField(this,3)};proto.MIMCP2TMessage.prototype.getIsstore=function(){return jspb.Message.getFieldWithDefault(this,4,!1)};
+proto.MIMCP2TMessage.prototype.setIsstore=function(a){jspb.Message.setField(this,4,a)};proto.MIMCP2TMessage.prototype.clearIsstore=function(){jspb.Message.setField(this,4,void 0)};proto.MIMCP2TMessage.prototype.hasIsstore=function(){return null!=jspb.Message.getField(this,4)};proto.MIMCP2TMessage.prototype.getBiztype=function(){return jspb.Message.getFieldWithDefault(this,5,"")};proto.MIMCP2TMessage.prototype.setBiztype=function(a){jspb.Message.setField(this,5,a)};
+proto.MIMCP2TMessage.prototype.clearBiztype=function(){jspb.Message.setField(this,5,void 0)};proto.MIMCP2TMessage.prototype.hasBiztype=function(){return null!=jspb.Message.getField(this,5)};proto.MIMCSequenceAck=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCSequenceAck,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCSequenceAck.displayName="proto.MIMCSequenceAck");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCSequenceAck.prototype.toObject=function(a){return proto.MIMCSequenceAck.toObject(a,this)},proto.MIMCSequenceAck.toObject=function(a,b){var c={uuid:jspb.Message.getField(b,1),resource:jspb.Message.getField(b,2),sequence:jspb.Message.getField(b,3)};a&&(c.$jspbMessageInstance=b);return c});
+proto.MIMCSequenceAck.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCSequenceAck;return proto.MIMCSequenceAck.deserializeBinaryFromReader(b,a)};proto.MIMCSequenceAck.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt64String();a.setUuid(c);break;case 2:c=b.readString();a.setResource(c);break;case 3:c=b.readInt64String();a.setSequence(c);break;default:b.skipField()}return a};
+proto.MIMCSequenceAck.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCSequenceAck.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.MIMCSequenceAck.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeInt64String(3,c)};
+proto.MIMCSequenceAck.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.MIMCSequenceAck.prototype.setUuid=function(a){jspb.Message.setField(this,1,a)};proto.MIMCSequenceAck.prototype.clearUuid=function(){jspb.Message.setField(this,1,void 0)};proto.MIMCSequenceAck.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCSequenceAck.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,2,"")};
+proto.MIMCSequenceAck.prototype.setResource=function(a){jspb.Message.setField(this,2,a)};proto.MIMCSequenceAck.prototype.clearResource=function(){jspb.Message.setField(this,2,void 0)};proto.MIMCSequenceAck.prototype.hasResource=function(){return null!=jspb.Message.getField(this,2)};proto.MIMCSequenceAck.prototype.getSequence=function(){return jspb.Message.getFieldWithDefault(this,3,"0")};proto.MIMCSequenceAck.prototype.setSequence=function(a){jspb.Message.setField(this,3,a)};
+proto.MIMCSequenceAck.prototype.clearSequence=function(){jspb.Message.setField(this,3,void 0)};proto.MIMCSequenceAck.prototype.hasSequence=function(){return null!=jspb.Message.getField(this,3)};proto.MIMCPull=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCPull,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCPull.displayName="proto.MIMCPull");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCPull.prototype.toObject=function(a){return proto.MIMCPull.toObject(a,this)},proto.MIMCPull.toObject=function(a,b){var c={uuid:jspb.Message.getField(b,1),resource:jspb.Message.getField(b,2)};a&&(c.$jspbMessageInstance=b);return c});proto.MIMCPull.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCPull;return proto.MIMCPull.deserializeBinaryFromReader(b,a)};
+proto.MIMCPull.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt64String();a.setUuid(c);break;case 2:c=b.readString();a.setResource(c);break;default:b.skipField()}return a};proto.MIMCPull.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCPull.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.MIMCPull.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c)};proto.MIMCPull.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.MIMCPull.prototype.setUuid=function(a){jspb.Message.setField(this,1,a)};proto.MIMCPull.prototype.clearUuid=function(){jspb.Message.setField(this,1,void 0)};
+proto.MIMCPull.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCPull.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.MIMCPull.prototype.setResource=function(a){jspb.Message.setField(this,2,a)};proto.MIMCPull.prototype.clearResource=function(){jspb.Message.setField(this,2,void 0)};proto.MIMCPull.prototype.hasResource=function(){return null!=jspb.Message.getField(this,2)};
+proto.P2PPushMesage=function(a){jspb.Message.initialize(this,a,0,-1,proto.P2PPushMesage.repeatedFields_,null)};goog.inherits(proto.P2PPushMesage,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.P2PPushMesage.displayName="proto.P2PPushMesage");proto.P2PPushMesage.repeatedFields_=[2];
+jspb.Message.GENERATE_TO_OBJECT&&(proto.P2PPushMesage.prototype.toObject=function(a){return proto.P2PPushMesage.toObject(a,this)},proto.P2PPushMesage.toObject=function(a,b){var c,d={from:(c=b.getFrom())&&proto.MIMCUser.toObject(a,c),toList:jspb.Message.toObjectList(b.getToList(),proto.MIMCUser.toObject,a),payload:b.getPayload_asB64(),isstore:jspb.Message.getField(b,4),biztype:jspb.Message.getField(b,5)};a&&(d.$jspbMessageInstance=b);return d});
+proto.P2PPushMesage.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.P2PPushMesage;return proto.P2PPushMesage.deserializeBinaryFromReader(b,a)};
+proto.P2PPushMesage.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setFrom(c);break;case 2:c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.addTo(c);break;case 3:c=b.readBytes();a.setPayload(c);break;case 4:c=b.readBool();a.setIsstore(c);break;case 5:c=b.readString();a.setBiztype(c);break;default:b.skipField()}return a};
+proto.P2PPushMesage.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.P2PPushMesage.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.P2PPushMesage.serializeBinaryToWriter=function(a,b){var c=a.getFrom();null!=c&&b.writeMessage(1,c,proto.MIMCUser.serializeBinaryToWriter);c=a.getToList();0<c.length&&b.writeRepeatedMessage(2,c,proto.MIMCUser.serializeBinaryToWriter);c=jspb.Message.getField(a,3);null!=c&&b.writeBytes(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeBool(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeString(5,c)};
+proto.P2PPushMesage.prototype.getFrom=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,1)};proto.P2PPushMesage.prototype.setFrom=function(a){jspb.Message.setWrapperField(this,1,a)};proto.P2PPushMesage.prototype.clearFrom=function(){this.setFrom(void 0)};proto.P2PPushMesage.prototype.hasFrom=function(){return null!=jspb.Message.getField(this,1)};proto.P2PPushMesage.prototype.getToList=function(){return jspb.Message.getRepeatedWrapperField(this,proto.MIMCUser,2)};
+proto.P2PPushMesage.prototype.setToList=function(a){jspb.Message.setRepeatedWrapperField(this,2,a)};proto.P2PPushMesage.prototype.addTo=function(a,b){return jspb.Message.addToRepeatedWrapperField(this,2,a,proto.MIMCUser,b)};proto.P2PPushMesage.prototype.clearToList=function(){this.setToList([])};proto.P2PPushMesage.prototype.getPayload=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.P2PPushMesage.prototype.getPayload_asB64=function(){return jspb.Message.bytesAsB64(this.getPayload())};
+proto.P2PPushMesage.prototype.getPayload_asU8=function(){return jspb.Message.bytesAsU8(this.getPayload())};proto.P2PPushMesage.prototype.setPayload=function(a){jspb.Message.setField(this,3,a)};proto.P2PPushMesage.prototype.clearPayload=function(){jspb.Message.setField(this,3,void 0)};proto.P2PPushMesage.prototype.hasPayload=function(){return null!=jspb.Message.getField(this,3)};proto.P2PPushMesage.prototype.getIsstore=function(){return jspb.Message.getFieldWithDefault(this,4,!1)};
+proto.P2PPushMesage.prototype.setIsstore=function(a){jspb.Message.setField(this,4,a)};proto.P2PPushMesage.prototype.clearIsstore=function(){jspb.Message.setField(this,4,void 0)};proto.P2PPushMesage.prototype.hasIsstore=function(){return null!=jspb.Message.getField(this,4)};proto.P2PPushMesage.prototype.getBiztype=function(){return jspb.Message.getFieldWithDefault(this,5,"")};proto.P2PPushMesage.prototype.setBiztype=function(a){jspb.Message.setField(this,5,a)};
+proto.P2PPushMesage.prototype.clearBiztype=function(){jspb.Message.setField(this,5,void 0)};proto.P2PPushMesage.prototype.hasBiztype=function(){return null!=jspb.Message.getField(this,5)};proto.P2TPushMesage=function(a){jspb.Message.initialize(this,a,0,-1,proto.P2TPushMesage.repeatedFields_,null)};goog.inherits(proto.P2TPushMesage,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.P2TPushMesage.displayName="proto.P2TPushMesage");proto.P2TPushMesage.repeatedFields_=[2];
+jspb.Message.GENERATE_TO_OBJECT&&(proto.P2TPushMesage.prototype.toObject=function(a){return proto.P2TPushMesage.toObject(a,this)},proto.P2TPushMesage.toObject=function(a,b){var c,d={from:(c=b.getFrom())&&proto.MIMCUser.toObject(a,c),toList:jspb.Message.toObjectList(b.getToList(),proto.MIMCGroup.toObject,a),payload:b.getPayload_asB64(),isstore:jspb.Message.getField(b,4),biztype:jspb.Message.getField(b,5)};a&&(d.$jspbMessageInstance=b);return d});
+proto.P2TPushMesage.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.P2TPushMesage;return proto.P2TPushMesage.deserializeBinaryFromReader(b,a)};
+proto.P2TPushMesage.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setFrom(c);break;case 2:c=new proto.MIMCGroup;b.readMessage(c,proto.MIMCGroup.deserializeBinaryFromReader);a.addTo(c);break;case 3:c=b.readBytes();a.setPayload(c);break;case 4:c=b.readBool();a.setIsstore(c);break;case 5:c=b.readString();a.setBiztype(c);break;default:b.skipField()}return a};
+proto.P2TPushMesage.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.P2TPushMesage.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.P2TPushMesage.serializeBinaryToWriter=function(a,b){var c=a.getFrom();null!=c&&b.writeMessage(1,c,proto.MIMCUser.serializeBinaryToWriter);c=a.getToList();0<c.length&&b.writeRepeatedMessage(2,c,proto.MIMCGroup.serializeBinaryToWriter);c=jspb.Message.getField(a,3);null!=c&&b.writeBytes(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeBool(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeString(5,c)};
+proto.P2TPushMesage.prototype.getFrom=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,1)};proto.P2TPushMesage.prototype.setFrom=function(a){jspb.Message.setWrapperField(this,1,a)};proto.P2TPushMesage.prototype.clearFrom=function(){this.setFrom(void 0)};proto.P2TPushMesage.prototype.hasFrom=function(){return null!=jspb.Message.getField(this,1)};proto.P2TPushMesage.prototype.getToList=function(){return jspb.Message.getRepeatedWrapperField(this,proto.MIMCGroup,2)};
+proto.P2TPushMesage.prototype.setToList=function(a){jspb.Message.setRepeatedWrapperField(this,2,a)};proto.P2TPushMesage.prototype.addTo=function(a,b){return jspb.Message.addToRepeatedWrapperField(this,2,a,proto.MIMCGroup,b)};proto.P2TPushMesage.prototype.clearToList=function(){this.setToList([])};proto.P2TPushMesage.prototype.getPayload=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.P2TPushMesage.prototype.getPayload_asB64=function(){return jspb.Message.bytesAsB64(this.getPayload())};
+proto.P2TPushMesage.prototype.getPayload_asU8=function(){return jspb.Message.bytesAsU8(this.getPayload())};proto.P2TPushMesage.prototype.setPayload=function(a){jspb.Message.setField(this,3,a)};proto.P2TPushMesage.prototype.clearPayload=function(){jspb.Message.setField(this,3,void 0)};proto.P2TPushMesage.prototype.hasPayload=function(){return null!=jspb.Message.getField(this,3)};proto.P2TPushMesage.prototype.getIsstore=function(){return jspb.Message.getFieldWithDefault(this,4,!1)};
+proto.P2TPushMesage.prototype.setIsstore=function(a){jspb.Message.setField(this,4,a)};proto.P2TPushMesage.prototype.clearIsstore=function(){jspb.Message.setField(this,4,void 0)};proto.P2TPushMesage.prototype.hasIsstore=function(){return null!=jspb.Message.getField(this,4)};proto.P2TPushMesage.prototype.getBiztype=function(){return jspb.Message.getFieldWithDefault(this,5,"")};proto.P2TPushMesage.prototype.setBiztype=function(a){jspb.Message.setField(this,5,a)};
+proto.P2TPushMesage.prototype.clearBiztype=function(){jspb.Message.setField(this,5,void 0)};proto.P2TPushMesage.prototype.hasBiztype=function(){return null!=jspb.Message.getField(this,5)};proto.MIMCUser=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCUser,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.MIMCUser.displayName="proto.MIMCUser");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCUser.prototype.toObject=function(a){return proto.MIMCUser.toObject(a,this)},proto.MIMCUser.toObject=function(a,b){var c={appid:jspb.Message.getField(b,1),appaccount:jspb.Message.getField(b,2),uuid:jspb.Message.getField(b,3),resource:jspb.Message.getField(b,4)};a&&(c.$jspbMessageInstance=b);return c});proto.MIMCUser.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCUser;return proto.MIMCUser.deserializeBinaryFromReader(b,a)};
+proto.MIMCUser.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt64String();a.setAppid(c);break;case 2:c=b.readString();a.setAppaccount(c);break;case 3:c=b.readInt64String();a.setUuid(c);break;case 4:c=b.readString();a.setResource(c);break;default:b.skipField()}return a};proto.MIMCUser.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCUser.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.MIMCUser.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeString(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeInt64String(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeString(4,c)};proto.MIMCUser.prototype.getAppid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.MIMCUser.prototype.setAppid=function(a){jspb.Message.setField(this,1,a)};
+proto.MIMCUser.prototype.clearAppid=function(){jspb.Message.setField(this,1,void 0)};proto.MIMCUser.prototype.hasAppid=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCUser.prototype.getAppaccount=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.MIMCUser.prototype.setAppaccount=function(a){jspb.Message.setField(this,2,a)};proto.MIMCUser.prototype.clearAppaccount=function(){jspb.Message.setField(this,2,void 0)};
+proto.MIMCUser.prototype.hasAppaccount=function(){return null!=jspb.Message.getField(this,2)};proto.MIMCUser.prototype.getUuid=function(){return jspb.Message.getFieldWithDefault(this,3,"0")};proto.MIMCUser.prototype.setUuid=function(a){jspb.Message.setField(this,3,a)};proto.MIMCUser.prototype.clearUuid=function(){jspb.Message.setField(this,3,void 0)};proto.MIMCUser.prototype.hasUuid=function(){return null!=jspb.Message.getField(this,3)};
+proto.MIMCUser.prototype.getResource=function(){return jspb.Message.getFieldWithDefault(this,4,"")};proto.MIMCUser.prototype.setResource=function(a){jspb.Message.setField(this,4,a)};proto.MIMCUser.prototype.clearResource=function(){jspb.Message.setField(this,4,void 0)};proto.MIMCUser.prototype.hasResource=function(){return null!=jspb.Message.getField(this,4)};proto.MIMCGroup=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.MIMCGroup,jspb.Message);
+goog.DEBUG&&!COMPILED&&(proto.MIMCGroup.displayName="proto.MIMCGroup");jspb.Message.GENERATE_TO_OBJECT&&(proto.MIMCGroup.prototype.toObject=function(a){return proto.MIMCGroup.toObject(a,this)},proto.MIMCGroup.toObject=function(a,b){var c={appid:jspb.Message.getField(b,1),topicid:jspb.Message.getField(b,2)};a&&(c.$jspbMessageInstance=b);return c});
+proto.MIMCGroup.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.MIMCGroup;return proto.MIMCGroup.deserializeBinaryFromReader(b,a)};proto.MIMCGroup.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt64String();a.setAppid(c);break;case 2:c=b.readInt64String();a.setTopicid(c);break;default:b.skipField()}return a};
+proto.MIMCGroup.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.MIMCGroup.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.MIMCGroup.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeInt64String(2,c)};proto.MIMCGroup.prototype.getAppid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};
+proto.MIMCGroup.prototype.setAppid=function(a){jspb.Message.setField(this,1,a)};proto.MIMCGroup.prototype.clearAppid=function(){jspb.Message.setField(this,1,void 0)};proto.MIMCGroup.prototype.hasAppid=function(){return null!=jspb.Message.getField(this,1)};proto.MIMCGroup.prototype.getTopicid=function(){return jspb.Message.getFieldWithDefault(this,2,"0")};proto.MIMCGroup.prototype.setTopicid=function(a){jspb.Message.setField(this,2,a)};
+proto.MIMCGroup.prototype.clearTopicid=function(){jspb.Message.setField(this,2,void 0)};proto.MIMCGroup.prototype.hasTopicid=function(){return null!=jspb.Message.getField(this,2)};proto.UCGroup=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCGroup,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCGroup.displayName="proto.UCGroup");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCGroup.prototype.toObject=function(a){return proto.UCGroup.toObject(a,this)},proto.UCGroup.toObject=function(a,b){var c={appid:jspb.Message.getField(b,1),topicid:jspb.Message.getField(b,2)};a&&(c.$jspbMessageInstance=b);return c});proto.UCGroup.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCGroup;return proto.UCGroup.deserializeBinaryFromReader(b,a)};
+proto.UCGroup.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readInt64String();a.setAppid(c);break;case 2:c=b.readInt64String();a.setTopicid(c);break;default:b.skipField()}return a};proto.UCGroup.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCGroup.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCGroup.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeInt64String(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeInt64String(2,c)};proto.UCGroup.prototype.getAppid=function(){return jspb.Message.getFieldWithDefault(this,1,"0")};proto.UCGroup.prototype.setAppid=function(a){jspb.Message.setField(this,1,a)};proto.UCGroup.prototype.clearAppid=function(){jspb.Message.setField(this,1,void 0)};
+proto.UCGroup.prototype.hasAppid=function(){return null!=jspb.Message.getField(this,1)};proto.UCGroup.prototype.getTopicid=function(){return jspb.Message.getFieldWithDefault(this,2,"0")};proto.UCGroup.prototype.setTopicid=function(a){jspb.Message.setField(this,2,a)};proto.UCGroup.prototype.clearTopicid=function(){jspb.Message.setField(this,2,void 0)};proto.UCGroup.prototype.hasTopicid=function(){return null!=jspb.Message.getField(this,2)};
+proto.UCPacket=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCPacket,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCPacket.displayName="proto.UCPacket");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCPacket.prototype.toObject=function(a){return proto.UCPacket.toObject(a,this)},proto.UCPacket.toObject=function(a,b){var c,d={user:(c=b.getUser())&&proto.MIMCUser.toObject(a,c),type:jspb.Message.getField(b,2),payload:b.getPayload_asB64(),packetid:jspb.Message.getField(b,4)};a&&(d.$jspbMessageInstance=b);return d});
+proto.UCPacket.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCPacket;return proto.UCPacket.deserializeBinaryFromReader(b,a)};
+proto.UCPacket.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setUser(c);break;case 2:c=b.readEnum();a.setType(c);break;case 3:c=b.readBytes();a.setPayload(c);break;case 4:c=b.readString();a.setPacketid(c);break;default:b.skipField()}return a};
+proto.UCPacket.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCPacket.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.UCPacket.serializeBinaryToWriter=function(a,b){var c=a.getUser();null!=c&&b.writeMessage(1,c,proto.MIMCUser.serializeBinaryToWriter);c=jspb.Message.getField(a,2);null!=c&&b.writeEnum(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeBytes(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeString(4,c)};
+proto.UCPacket.prototype.getUser=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,1,1)};proto.UCPacket.prototype.setUser=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCPacket.prototype.clearUser=function(){jspb.Message.setField(this,1,void 0)};proto.UCPacket.prototype.hasUser=function(){return null!=jspb.Message.getField(this,1)};proto.UCPacket.prototype.getType=function(){return jspb.Message.getFieldWithDefault(this,2,1)};
+proto.UCPacket.prototype.setType=function(a){jspb.Message.setField(this,2,a)};proto.UCPacket.prototype.clearType=function(){jspb.Message.setField(this,2,void 0)};proto.UCPacket.prototype.hasType=function(){return null!=jspb.Message.getField(this,2)};proto.UCPacket.prototype.getPayload=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.UCPacket.prototype.getPayload_asB64=function(){return jspb.Message.bytesAsB64(this.getPayload())};proto.UCPacket.prototype.getPayload_asU8=function(){return jspb.Message.bytesAsU8(this.getPayload())};
+proto.UCPacket.prototype.setPayload=function(a){jspb.Message.setField(this,3,a)};proto.UCPacket.prototype.clearPayload=function(){jspb.Message.setField(this,3,void 0)};proto.UCPacket.prototype.hasPayload=function(){return null!=jspb.Message.getField(this,3)};proto.UCPacket.prototype.getPacketid=function(){return jspb.Message.getFieldWithDefault(this,4,"")};proto.UCPacket.prototype.setPacketid=function(a){jspb.Message.setField(this,4,a)};
+proto.UCPacket.prototype.clearPacketid=function(){jspb.Message.setField(this,4,void 0)};proto.UCPacket.prototype.hasPacketid=function(){return null!=jspb.Message.getField(this,4)};proto.UCExchange=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCExchange,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCExchange.displayName="proto.UCExchange");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCExchange.prototype.toObject=function(a){return proto.UCExchange.toObject(a,this)},proto.UCExchange.toObject=function(a,b){var c,d={feinfo:(c=b.getFeinfo())&&proto.FeInfo.toObject(a,c),packet:(c=b.getPacket())&&proto.UCPacket.toObject(a,c),pb_package:jspb.Message.getField(b,3)};a&&(d.$jspbMessageInstance=b);return d});
+proto.UCExchange.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCExchange;return proto.UCExchange.deserializeBinaryFromReader(b,a)};
+proto.UCExchange.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.FeInfo;b.readMessage(c,proto.FeInfo.deserializeBinaryFromReader);a.setFeinfo(c);break;case 2:c=new proto.UCPacket;b.readMessage(c,proto.UCPacket.deserializeBinaryFromReader);a.setPacket(c);break;case 3:c=b.readString();a.setPackage(c);break;default:b.skipField()}return a};
+proto.UCExchange.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCExchange.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.UCExchange.serializeBinaryToWriter=function(a,b){var c=a.getFeinfo();null!=c&&b.writeMessage(1,c,proto.FeInfo.serializeBinaryToWriter);c=a.getPacket();null!=c&&b.writeMessage(2,c,proto.UCPacket.serializeBinaryToWriter);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c)};
+proto.UCExchange.prototype.getFeinfo=function(){return jspb.Message.getWrapperField(this,proto.FeInfo,1)};proto.UCExchange.prototype.setFeinfo=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCExchange.prototype.clearFeinfo=function(){this.setFeinfo(void 0)};proto.UCExchange.prototype.hasFeinfo=function(){return null!=jspb.Message.getField(this,1)};proto.UCExchange.prototype.getPacket=function(){return jspb.Message.getWrapperField(this,proto.UCPacket,2,1)};
+proto.UCExchange.prototype.setPacket=function(a){jspb.Message.setWrapperField(this,2,a)};proto.UCExchange.prototype.clearPacket=function(){jspb.Message.setField(this,2,void 0)};proto.UCExchange.prototype.hasPacket=function(){return null!=jspb.Message.getField(this,2)};proto.UCExchange.prototype.getPackage=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.UCExchange.prototype.setPackage=function(a){jspb.Message.setField(this,3,a)};
+proto.UCExchange.prototype.clearPackage=function(){jspb.Message.setField(this,3,void 0)};proto.UCExchange.prototype.hasPackage=function(){return null!=jspb.Message.getField(this,3)};proto.UCJoin=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCJoin,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCJoin.displayName="proto.UCJoin");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCJoin.prototype.toObject=function(a){return proto.UCJoin.toObject(a,this)},proto.UCJoin.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c)};a&&(d.$jspbMessageInstance=b);return d});proto.UCJoin.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCJoin;return proto.UCJoin.deserializeBinaryFromReader(b,a)};
+proto.UCJoin.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;default:b.skipField()}return a};proto.UCJoin.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCJoin.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCJoin.serializeBinaryToWriter=function(a,b){a=a.getGroup();null!=a&&b.writeMessage(1,a,proto.UCGroup.serializeBinaryToWriter)};proto.UCJoin.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCJoin.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCJoin.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCJoin.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};
+proto.UCJoinResp=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCJoinResp,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCJoinResp.displayName="proto.UCJoinResp");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCJoinResp.prototype.toObject=function(a){return proto.UCJoinResp.toObject(a,this)},proto.UCJoinResp.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c),code:jspb.Message.getField(b,2),message:jspb.Message.getField(b,3)};a&&(d.$jspbMessageInstance=b);return d});proto.UCJoinResp.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCJoinResp;return proto.UCJoinResp.deserializeBinaryFromReader(b,a)};
+proto.UCJoinResp.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;case 2:c=b.readInt32();a.setCode(c);break;case 3:c=b.readString();a.setMessage(c);break;default:b.skipField()}return a};proto.UCJoinResp.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCJoinResp.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCJoinResp.serializeBinaryToWriter=function(a,b){var c=a.getGroup();null!=c&&b.writeMessage(1,c,proto.UCGroup.serializeBinaryToWriter);c=jspb.Message.getField(a,2);null!=c&&b.writeInt32(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c)};proto.UCJoinResp.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCJoinResp.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};
+proto.UCJoinResp.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCJoinResp.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};proto.UCJoinResp.prototype.getCode=function(){return jspb.Message.getFieldWithDefault(this,2,0)};proto.UCJoinResp.prototype.setCode=function(a){jspb.Message.setField(this,2,a)};proto.UCJoinResp.prototype.clearCode=function(){jspb.Message.setField(this,2,void 0)};
+proto.UCJoinResp.prototype.hasCode=function(){return null!=jspb.Message.getField(this,2)};proto.UCJoinResp.prototype.getMessage=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.UCJoinResp.prototype.setMessage=function(a){jspb.Message.setField(this,3,a)};proto.UCJoinResp.prototype.clearMessage=function(){jspb.Message.setField(this,3,void 0)};proto.UCJoinResp.prototype.hasMessage=function(){return null!=jspb.Message.getField(this,3)};
+proto.UCQuit=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCQuit,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCQuit.displayName="proto.UCQuit");jspb.Message.GENERATE_TO_OBJECT&&(proto.UCQuit.prototype.toObject=function(a){return proto.UCQuit.toObject(a,this)},proto.UCQuit.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c)};a&&(d.$jspbMessageInstance=b);return d});
+proto.UCQuit.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCQuit;return proto.UCQuit.deserializeBinaryFromReader(b,a)};proto.UCQuit.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;default:b.skipField()}return a};
+proto.UCQuit.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCQuit.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.UCQuit.serializeBinaryToWriter=function(a,b){a=a.getGroup();null!=a&&b.writeMessage(1,a,proto.UCGroup.serializeBinaryToWriter)};proto.UCQuit.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCQuit.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};
+proto.UCQuit.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCQuit.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};proto.UCQuitResp=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCQuitResp,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCQuitResp.displayName="proto.UCQuitResp");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCQuitResp.prototype.toObject=function(a){return proto.UCQuitResp.toObject(a,this)},proto.UCQuitResp.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c),code:jspb.Message.getField(b,2),message:jspb.Message.getField(b,3)};a&&(d.$jspbMessageInstance=b);return d});proto.UCQuitResp.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCQuitResp;return proto.UCQuitResp.deserializeBinaryFromReader(b,a)};
+proto.UCQuitResp.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;case 2:c=b.readInt32();a.setCode(c);break;case 3:c=b.readString();a.setMessage(c);break;default:b.skipField()}return a};proto.UCQuitResp.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCQuitResp.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCQuitResp.serializeBinaryToWriter=function(a,b){var c=a.getGroup();null!=c&&b.writeMessage(1,c,proto.UCGroup.serializeBinaryToWriter);c=jspb.Message.getField(a,2);null!=c&&b.writeInt32(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeString(3,c)};proto.UCQuitResp.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCQuitResp.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};
+proto.UCQuitResp.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCQuitResp.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};proto.UCQuitResp.prototype.getCode=function(){return jspb.Message.getFieldWithDefault(this,2,0)};proto.UCQuitResp.prototype.setCode=function(a){jspb.Message.setField(this,2,a)};proto.UCQuitResp.prototype.clearCode=function(){jspb.Message.setField(this,2,void 0)};
+proto.UCQuitResp.prototype.hasCode=function(){return null!=jspb.Message.getField(this,2)};proto.UCQuitResp.prototype.getMessage=function(){return jspb.Message.getFieldWithDefault(this,3,"")};proto.UCQuitResp.prototype.setMessage=function(a){jspb.Message.setField(this,3,a)};proto.UCQuitResp.prototype.clearMessage=function(){jspb.Message.setField(this,3,void 0)};proto.UCQuitResp.prototype.hasMessage=function(){return null!=jspb.Message.getField(this,3)};
+proto.UCPing=function(a){jspb.Message.initialize(this,a,0,-1,proto.UCPing.repeatedFields_,null)};goog.inherits(proto.UCPing,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCPing.displayName="proto.UCPing");proto.UCPing.repeatedFields_=[1];
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCPing.prototype.toObject=function(a){return proto.UCPing.toObject(a,this)},proto.UCPing.toObject=function(a,b){var c={groupList:jspb.Message.toObjectList(b.getGroupList(),proto.UCGroup.toObject,a)};a&&(c.$jspbMessageInstance=b);return c});proto.UCPing.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCPing;return proto.UCPing.deserializeBinaryFromReader(b,a)};
+proto.UCPing.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.addGroup(c);break;default:b.skipField()}return a};proto.UCPing.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCPing.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCPing.serializeBinaryToWriter=function(a,b){a=a.getGroupList();0<a.length&&b.writeRepeatedMessage(1,a,proto.UCGroup.serializeBinaryToWriter)};proto.UCPing.prototype.getGroupList=function(){return jspb.Message.getRepeatedWrapperField(this,proto.UCGroup,1)};proto.UCPing.prototype.setGroupList=function(a){jspb.Message.setRepeatedWrapperField(this,1,a)};proto.UCPing.prototype.addGroup=function(a,b){return jspb.Message.addToRepeatedWrapperField(this,1,a,proto.UCGroup,b)};
+proto.UCPing.prototype.clearGroupList=function(){this.setGroupList([])};proto.UCMessage=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCMessage,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCMessage.displayName="proto.UCMessage");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCMessage.prototype.toObject=function(a){return proto.UCMessage.toObject(a,this)},proto.UCMessage.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c),payload:b.getPayload_asB64(),sequence:jspb.Message.getField(b,3),isstore:jspb.Message.getField(b,4),user:(c=b.getUser())&&proto.MIMCUser.toObject(a,c),timestamp:jspb.Message.getField(b,6),packetid:jspb.Message.getField(b,7),biztype:jspb.Message.getField(b,8)};a&&(d.$jspbMessageInstance=
+b);return d});proto.UCMessage.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCMessage;return proto.UCMessage.deserializeBinaryFromReader(b,a)};
+proto.UCMessage.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;case 2:c=b.readBytes();a.setPayload(c);break;case 3:c=b.readInt64String();a.setSequence(c);break;case 4:c=b.readBool();a.setIsstore(c);break;case 5:c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setUser(c);break;case 6:c=b.readInt64String();
+a.setTimestamp(c);break;case 7:c=b.readString();a.setPacketid(c);break;case 8:c=b.readString();a.setBiztype(c);break;default:b.skipField()}return a};proto.UCMessage.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCMessage.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCMessage.serializeBinaryToWriter=function(a,b){var c=a.getGroup();null!=c&&b.writeMessage(1,c,proto.UCGroup.serializeBinaryToWriter);c=jspb.Message.getField(a,2);null!=c&&b.writeBytes(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeInt64String(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeBool(4,c);c=a.getUser();null!=c&&b.writeMessage(5,c,proto.MIMCUser.serializeBinaryToWriter);c=jspb.Message.getField(a,6);null!=c&&b.writeInt64String(6,c);c=jspb.Message.getField(a,7);null!=c&&b.writeString(7,
+c);c=jspb.Message.getField(a,8);null!=c&&b.writeString(8,c)};proto.UCMessage.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCMessage.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCMessage.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCMessage.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};
+proto.UCMessage.prototype.getPayload=function(){return jspb.Message.getFieldWithDefault(this,2,"")};proto.UCMessage.prototype.getPayload_asB64=function(){return jspb.Message.bytesAsB64(this.getPayload())};proto.UCMessage.prototype.getPayload_asU8=function(){return jspb.Message.bytesAsU8(this.getPayload())};proto.UCMessage.prototype.setPayload=function(a){jspb.Message.setField(this,2,a)};proto.UCMessage.prototype.clearPayload=function(){jspb.Message.setField(this,2,void 0)};
+proto.UCMessage.prototype.hasPayload=function(){return null!=jspb.Message.getField(this,2)};proto.UCMessage.prototype.getSequence=function(){return jspb.Message.getFieldWithDefault(this,3,"0")};proto.UCMessage.prototype.setSequence=function(a){jspb.Message.setField(this,3,a)};proto.UCMessage.prototype.clearSequence=function(){jspb.Message.setField(this,3,void 0)};proto.UCMessage.prototype.hasSequence=function(){return null!=jspb.Message.getField(this,3)};
+proto.UCMessage.prototype.getIsstore=function(){return jspb.Message.getFieldWithDefault(this,4,!1)};proto.UCMessage.prototype.setIsstore=function(a){jspb.Message.setField(this,4,a)};proto.UCMessage.prototype.clearIsstore=function(){jspb.Message.setField(this,4,void 0)};proto.UCMessage.prototype.hasIsstore=function(){return null!=jspb.Message.getField(this,4)};proto.UCMessage.prototype.getUser=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,5)};
+proto.UCMessage.prototype.setUser=function(a){jspb.Message.setWrapperField(this,5,a)};proto.UCMessage.prototype.clearUser=function(){this.setUser(void 0)};proto.UCMessage.prototype.hasUser=function(){return null!=jspb.Message.getField(this,5)};proto.UCMessage.prototype.getTimestamp=function(){return jspb.Message.getFieldWithDefault(this,6,"0")};proto.UCMessage.prototype.setTimestamp=function(a){jspb.Message.setField(this,6,a)};
+proto.UCMessage.prototype.clearTimestamp=function(){jspb.Message.setField(this,6,void 0)};proto.UCMessage.prototype.hasTimestamp=function(){return null!=jspb.Message.getField(this,6)};proto.UCMessage.prototype.getPacketid=function(){return jspb.Message.getFieldWithDefault(this,7,"")};proto.UCMessage.prototype.setPacketid=function(a){jspb.Message.setField(this,7,a)};proto.UCMessage.prototype.clearPacketid=function(){jspb.Message.setField(this,7,void 0)};
+proto.UCMessage.prototype.hasPacketid=function(){return null!=jspb.Message.getField(this,7)};proto.UCMessage.prototype.getBiztype=function(){return jspb.Message.getFieldWithDefault(this,8,"")};proto.UCMessage.prototype.setBiztype=function(a){jspb.Message.setField(this,8,a)};proto.UCMessage.prototype.clearBiztype=function(){jspb.Message.setField(this,8,void 0)};proto.UCMessage.prototype.hasBiztype=function(){return null!=jspb.Message.getField(this,8)};
+proto.UCPushMessage=function(a){jspb.Message.initialize(this,a,0,-1,proto.UCPushMessage.repeatedFields_,null)};goog.inherits(proto.UCPushMessage,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCPushMessage.displayName="proto.UCPushMessage");proto.UCPushMessage.repeatedFields_=[2,3];
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCPushMessage.prototype.toObject=function(a){return proto.UCPushMessage.toObject(a,this)},proto.UCPushMessage.toObject=function(a,b){var c,d={user:(c=b.getUser())&&proto.MIMCUser.toObject(a,c),groupList:jspb.Message.toObjectList(b.getGroupList(),proto.UCGroup.toObject,a),payloadsList:b.getPayloadsList_asB64(),isstore:jspb.Message.getField(b,4),timestamp:jspb.Message.getField(b,5),packetid:jspb.Message.getField(b,6),biztype:jspb.Message.getField(b,7)};a&&(d.$jspbMessageInstance=
+b);return d});proto.UCPushMessage.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCPushMessage;return proto.UCPushMessage.deserializeBinaryFromReader(b,a)};
+proto.UCPushMessage.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.MIMCUser;b.readMessage(c,proto.MIMCUser.deserializeBinaryFromReader);a.setUser(c);break;case 2:c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.addGroup(c);break;case 3:c=b.readBytes();a.addPayloads(c);break;case 4:c=b.readBool();a.setIsstore(c);break;case 5:c=b.readInt64String();a.setTimestamp(c);break;case 6:c=b.readString();
+a.setPacketid(c);break;case 7:c=b.readString();a.setBiztype(c);break;default:b.skipField()}return a};proto.UCPushMessage.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCPushMessage.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCPushMessage.serializeBinaryToWriter=function(a,b){var c=a.getUser();null!=c&&b.writeMessage(1,c,proto.MIMCUser.serializeBinaryToWriter);c=a.getGroupList();0<c.length&&b.writeRepeatedMessage(2,c,proto.UCGroup.serializeBinaryToWriter);c=a.getPayloadsList_asU8();0<c.length&&b.writeRepeatedBytes(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeBool(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeInt64String(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeString(6,c);c=jspb.Message.getField(a,
+7);null!=c&&b.writeString(7,c)};proto.UCPushMessage.prototype.getUser=function(){return jspb.Message.getWrapperField(this,proto.MIMCUser,1,1)};proto.UCPushMessage.prototype.setUser=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCPushMessage.prototype.clearUser=function(){jspb.Message.setField(this,1,void 0)};proto.UCPushMessage.prototype.hasUser=function(){return null!=jspb.Message.getField(this,1)};
+proto.UCPushMessage.prototype.getGroupList=function(){return jspb.Message.getRepeatedWrapperField(this,proto.UCGroup,2)};proto.UCPushMessage.prototype.setGroupList=function(a){jspb.Message.setRepeatedWrapperField(this,2,a)};proto.UCPushMessage.prototype.addGroup=function(a,b){return jspb.Message.addToRepeatedWrapperField(this,2,a,proto.UCGroup,b)};proto.UCPushMessage.prototype.clearGroupList=function(){this.setGroupList([])};
+proto.UCPushMessage.prototype.getPayloadsList=function(){return jspb.Message.getRepeatedField(this,3)};proto.UCPushMessage.prototype.getPayloadsList_asB64=function(){return jspb.Message.bytesListAsB64(this.getPayloadsList())};proto.UCPushMessage.prototype.getPayloadsList_asU8=function(){return jspb.Message.bytesListAsU8(this.getPayloadsList())};proto.UCPushMessage.prototype.setPayloadsList=function(a){jspb.Message.setField(this,3,a||[])};
+proto.UCPushMessage.prototype.addPayloads=function(a,b){jspb.Message.addToRepeatedField(this,3,a,b)};proto.UCPushMessage.prototype.clearPayloadsList=function(){this.setPayloadsList([])};proto.UCPushMessage.prototype.getIsstore=function(){return jspb.Message.getFieldWithDefault(this,4,!1)};proto.UCPushMessage.prototype.setIsstore=function(a){jspb.Message.setField(this,4,a)};proto.UCPushMessage.prototype.clearIsstore=function(){jspb.Message.setField(this,4,void 0)};
+proto.UCPushMessage.prototype.hasIsstore=function(){return null!=jspb.Message.getField(this,4)};proto.UCPushMessage.prototype.getTimestamp=function(){return jspb.Message.getFieldWithDefault(this,5,"0")};proto.UCPushMessage.prototype.setTimestamp=function(a){jspb.Message.setField(this,5,a)};proto.UCPushMessage.prototype.clearTimestamp=function(){jspb.Message.setField(this,5,void 0)};proto.UCPushMessage.prototype.hasTimestamp=function(){return null!=jspb.Message.getField(this,5)};
+proto.UCPushMessage.prototype.getPacketid=function(){return jspb.Message.getFieldWithDefault(this,6,"")};proto.UCPushMessage.prototype.setPacketid=function(a){jspb.Message.setField(this,6,a)};proto.UCPushMessage.prototype.clearPacketid=function(){jspb.Message.setField(this,6,void 0)};proto.UCPushMessage.prototype.hasPacketid=function(){return null!=jspb.Message.getField(this,6)};proto.UCPushMessage.prototype.getBiztype=function(){return jspb.Message.getFieldWithDefault(this,7,"")};
+proto.UCPushMessage.prototype.setBiztype=function(a){jspb.Message.setField(this,7,a)};proto.UCPushMessage.prototype.clearBiztype=function(){jspb.Message.setField(this,7,void 0)};proto.UCPushMessage.prototype.hasBiztype=function(){return null!=jspb.Message.getField(this,7)};proto.UCMessageList=function(a){jspb.Message.initialize(this,a,0,-1,proto.UCMessageList.repeatedFields_,null)};goog.inherits(proto.UCMessageList,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCMessageList.displayName="proto.UCMessageList");
+proto.UCMessageList.repeatedFields_=[2];jspb.Message.GENERATE_TO_OBJECT&&(proto.UCMessageList.prototype.toObject=function(a){return proto.UCMessageList.toObject(a,this)},proto.UCMessageList.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c),messageList:jspb.Message.toObjectList(b.getMessageList(),proto.UCMessage.toObject,a),maxsequence:jspb.Message.getField(b,3)};a&&(d.$jspbMessageInstance=b);return d});
+proto.UCMessageList.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCMessageList;return proto.UCMessageList.deserializeBinaryFromReader(b,a)};
+proto.UCMessageList.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;case 2:c=new proto.UCMessage;b.readMessage(c,proto.UCMessage.deserializeBinaryFromReader);a.addMessage(c);break;case 3:c=b.readInt64String();a.setMaxsequence(c);break;default:b.skipField()}return a};
+proto.UCMessageList.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCMessageList.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.UCMessageList.serializeBinaryToWriter=function(a,b){var c=a.getGroup();null!=c&&b.writeMessage(1,c,proto.UCGroup.serializeBinaryToWriter);c=a.getMessageList();0<c.length&&b.writeRepeatedMessage(2,c,proto.UCMessage.serializeBinaryToWriter);c=jspb.Message.getField(a,3);null!=c&&b.writeInt64String(3,c)};
+proto.UCMessageList.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCMessageList.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCMessageList.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCMessageList.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};
+proto.UCMessageList.prototype.getMessageList=function(){return jspb.Message.getRepeatedWrapperField(this,proto.UCMessage,2)};proto.UCMessageList.prototype.setMessageList=function(a){jspb.Message.setRepeatedWrapperField(this,2,a)};proto.UCMessageList.prototype.addMessage=function(a,b){return jspb.Message.addToRepeatedWrapperField(this,2,a,proto.UCMessage,b)};proto.UCMessageList.prototype.clearMessageList=function(){this.setMessageList([])};
+proto.UCMessageList.prototype.getMaxsequence=function(){return jspb.Message.getFieldWithDefault(this,3,"0")};proto.UCMessageList.prototype.setMaxsequence=function(a){jspb.Message.setField(this,3,a)};proto.UCMessageList.prototype.clearMaxsequence=function(){jspb.Message.setField(this,3,void 0)};proto.UCMessageList.prototype.hasMaxsequence=function(){return null!=jspb.Message.getField(this,3)};proto.UCSequenceAck=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};
+goog.inherits(proto.UCSequenceAck,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCSequenceAck.displayName="proto.UCSequenceAck");jspb.Message.GENERATE_TO_OBJECT&&(proto.UCSequenceAck.prototype.toObject=function(a){return proto.UCSequenceAck.toObject(a,this)},proto.UCSequenceAck.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c),sequence:jspb.Message.getField(b,2)};a&&(d.$jspbMessageInstance=b);return d});
+proto.UCSequenceAck.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCSequenceAck;return proto.UCSequenceAck.deserializeBinaryFromReader(b,a)};proto.UCSequenceAck.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;case 2:c=b.readInt64String();a.setSequence(c);break;default:b.skipField()}return a};
+proto.UCSequenceAck.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCSequenceAck.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.UCSequenceAck.serializeBinaryToWriter=function(a,b){var c=a.getGroup();null!=c&&b.writeMessage(1,c,proto.UCGroup.serializeBinaryToWriter);c=jspb.Message.getField(a,2);null!=c&&b.writeInt64String(2,c)};proto.UCSequenceAck.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};
+proto.UCSequenceAck.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCSequenceAck.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCSequenceAck.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};proto.UCSequenceAck.prototype.getSequence=function(){return jspb.Message.getFieldWithDefault(this,2,"0")};proto.UCSequenceAck.prototype.setSequence=function(a){jspb.Message.setField(this,2,a)};
+proto.UCSequenceAck.prototype.clearSequence=function(){jspb.Message.setField(this,2,void 0)};proto.UCSequenceAck.prototype.hasSequence=function(){return null!=jspb.Message.getField(this,2)};proto.UCDismiss=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCDismiss,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCDismiss.displayName="proto.UCDismiss");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCDismiss.prototype.toObject=function(a){return proto.UCDismiss.toObject(a,this)},proto.UCDismiss.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c)};a&&(d.$jspbMessageInstance=b);return d});proto.UCDismiss.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCDismiss;return proto.UCDismiss.deserializeBinaryFromReader(b,a)};
+proto.UCDismiss.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;default:b.skipField()}return a};proto.UCDismiss.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCDismiss.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCDismiss.serializeBinaryToWriter=function(a,b){a=a.getGroup();null!=a&&b.writeMessage(1,a,proto.UCGroup.serializeBinaryToWriter)};proto.UCDismiss.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCDismiss.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCDismiss.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};
+proto.UCDismiss.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};proto.UCQueryOnlineUsers=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCQueryOnlineUsers,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCQueryOnlineUsers.displayName="proto.UCQueryOnlineUsers");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCQueryOnlineUsers.prototype.toObject=function(a){return proto.UCQueryOnlineUsers.toObject(a,this)},proto.UCQueryOnlineUsers.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c)};a&&(d.$jspbMessageInstance=b);return d});proto.UCQueryOnlineUsers.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCQueryOnlineUsers;return proto.UCQueryOnlineUsers.deserializeBinaryFromReader(b,a)};
+proto.UCQueryOnlineUsers.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;default:b.skipField()}return a};proto.UCQueryOnlineUsers.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCQueryOnlineUsers.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.UCQueryOnlineUsers.serializeBinaryToWriter=function(a,b){a=a.getGroup();null!=a&&b.writeMessage(1,a,proto.UCGroup.serializeBinaryToWriter)};proto.UCQueryOnlineUsers.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCQueryOnlineUsers.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCQueryOnlineUsers.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};
+proto.UCQueryOnlineUsers.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};proto.UCQueryOnlineUsersResp=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};goog.inherits(proto.UCQueryOnlineUsersResp,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.UCQueryOnlineUsersResp.displayName="proto.UCQueryOnlineUsersResp");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.UCQueryOnlineUsersResp.prototype.toObject=function(a){return proto.UCQueryOnlineUsersResp.toObject(a,this)},proto.UCQueryOnlineUsersResp.toObject=function(a,b){var c,d={group:(c=b.getGroup())&&proto.UCGroup.toObject(a,c),usercount:jspb.Message.getField(b,2)};a&&(d.$jspbMessageInstance=b);return d});
+proto.UCQueryOnlineUsersResp.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.UCQueryOnlineUsersResp;return proto.UCQueryOnlineUsersResp.deserializeBinaryFromReader(b,a)};proto.UCQueryOnlineUsersResp.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=new proto.UCGroup;b.readMessage(c,proto.UCGroup.deserializeBinaryFromReader);a.setGroup(c);break;case 2:c=b.readInt64String();a.setUsercount(c);break;default:b.skipField()}return a};
+proto.UCQueryOnlineUsersResp.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.UCQueryOnlineUsersResp.serializeBinaryToWriter(this,a);return a.getResultBuffer()};proto.UCQueryOnlineUsersResp.serializeBinaryToWriter=function(a,b){var c=a.getGroup();null!=c&&b.writeMessage(1,c,proto.UCGroup.serializeBinaryToWriter);c=jspb.Message.getField(a,2);null!=c&&b.writeInt64String(2,c)};
+proto.UCQueryOnlineUsersResp.prototype.getGroup=function(){return jspb.Message.getWrapperField(this,proto.UCGroup,1,1)};proto.UCQueryOnlineUsersResp.prototype.setGroup=function(a){jspb.Message.setWrapperField(this,1,a)};proto.UCQueryOnlineUsersResp.prototype.clearGroup=function(){jspb.Message.setField(this,1,void 0)};proto.UCQueryOnlineUsersResp.prototype.hasGroup=function(){return null!=jspb.Message.getField(this,1)};
+proto.UCQueryOnlineUsersResp.prototype.getUsercount=function(){return jspb.Message.getFieldWithDefault(this,2,"0")};proto.UCQueryOnlineUsersResp.prototype.setUsercount=function(a){jspb.Message.setField(this,2,a)};proto.UCQueryOnlineUsersResp.prototype.clearUsercount=function(){jspb.Message.setField(this,2,void 0)};proto.UCQueryOnlineUsersResp.prototype.hasUsercount=function(){return null!=jspb.Message.getField(this,2)};proto.FeInfo=function(a){jspb.Message.initialize(this,a,0,-1,null,null)};
+goog.inherits(proto.FeInfo,jspb.Message);goog.DEBUG&&!COMPILED&&(proto.FeInfo.displayName="proto.FeInfo");
+jspb.Message.GENERATE_TO_OBJECT&&(proto.FeInfo.prototype.toObject=function(a){return proto.FeInfo.toObject(a,this)},proto.FeInfo.toObject=function(a,b){var c={feSrcIp:jspb.Message.getField(b,1),feSrcPort:jspb.Message.getField(b,2),feThreadId:jspb.Message.getField(b,3),feUcid:jspb.Message.getField(b,4),feSid:jspb.Message.getField(b,5),feSeqno:jspb.Message.getField(b,6)};a&&(c.$jspbMessageInstance=b);return c});
+proto.FeInfo.deserializeBinary=function(a){a=new jspb.BinaryReader(a);var b=new proto.FeInfo;return proto.FeInfo.deserializeBinaryFromReader(b,a)};
+proto.FeInfo.deserializeBinaryFromReader=function(a,b){for(;b.nextField()&&!b.isEndGroup();)switch(b.getFieldNumber()){case 1:var c=b.readString();a.setFeSrcIp(c);break;case 2:c=b.readInt32();a.setFeSrcPort(c);break;case 3:c=b.readInt32();a.setFeThreadId(c);break;case 4:c=b.readUint64String();a.setFeUcid(c);break;case 5:c=b.readUint64String();a.setFeSid(c);break;case 6:c=b.readUint64String();a.setFeSeqno(c);break;default:b.skipField()}return a};
+proto.FeInfo.prototype.serializeBinary=function(){var a=new jspb.BinaryWriter;proto.FeInfo.serializeBinaryToWriter(this,a);return a.getResultBuffer()};
+proto.FeInfo.serializeBinaryToWriter=function(a,b){var c=jspb.Message.getField(a,1);null!=c&&b.writeString(1,c);c=jspb.Message.getField(a,2);null!=c&&b.writeInt32(2,c);c=jspb.Message.getField(a,3);null!=c&&b.writeInt32(3,c);c=jspb.Message.getField(a,4);null!=c&&b.writeUint64String(4,c);c=jspb.Message.getField(a,5);null!=c&&b.writeUint64String(5,c);c=jspb.Message.getField(a,6);null!=c&&b.writeUint64String(6,c)};
+proto.FeInfo.prototype.getFeSrcIp=function(){return jspb.Message.getFieldWithDefault(this,1,"")};proto.FeInfo.prototype.setFeSrcIp=function(a){jspb.Message.setField(this,1,a)};proto.FeInfo.prototype.clearFeSrcIp=function(){jspb.Message.setField(this,1,void 0)};proto.FeInfo.prototype.hasFeSrcIp=function(){return null!=jspb.Message.getField(this,1)};proto.FeInfo.prototype.getFeSrcPort=function(){return jspb.Message.getFieldWithDefault(this,2,0)};
+proto.FeInfo.prototype.setFeSrcPort=function(a){jspb.Message.setField(this,2,a)};proto.FeInfo.prototype.clearFeSrcPort=function(){jspb.Message.setField(this,2,void 0)};proto.FeInfo.prototype.hasFeSrcPort=function(){return null!=jspb.Message.getField(this,2)};proto.FeInfo.prototype.getFeThreadId=function(){return jspb.Message.getFieldWithDefault(this,3,0)};proto.FeInfo.prototype.setFeThreadId=function(a){jspb.Message.setField(this,3,a)};
+proto.FeInfo.prototype.clearFeThreadId=function(){jspb.Message.setField(this,3,void 0)};proto.FeInfo.prototype.hasFeThreadId=function(){return null!=jspb.Message.getField(this,3)};proto.FeInfo.prototype.getFeUcid=function(){return jspb.Message.getFieldWithDefault(this,4,"0")};proto.FeInfo.prototype.setFeUcid=function(a){jspb.Message.setField(this,4,a)};proto.FeInfo.prototype.clearFeUcid=function(){jspb.Message.setField(this,4,void 0)};
+proto.FeInfo.prototype.hasFeUcid=function(){return null!=jspb.Message.getField(this,4)};proto.FeInfo.prototype.getFeSid=function(){return jspb.Message.getFieldWithDefault(this,5,"0")};proto.FeInfo.prototype.setFeSid=function(a){jspb.Message.setField(this,5,a)};proto.FeInfo.prototype.clearFeSid=function(){jspb.Message.setField(this,5,void 0)};proto.FeInfo.prototype.hasFeSid=function(){return null!=jspb.Message.getField(this,5)};
+proto.FeInfo.prototype.getFeSeqno=function(){return jspb.Message.getFieldWithDefault(this,6,"0")};proto.FeInfo.prototype.setFeSeqno=function(a){jspb.Message.setField(this,6,a)};proto.FeInfo.prototype.clearFeSeqno=function(){jspb.Message.setField(this,6,void 0)};proto.FeInfo.prototype.hasFeSeqno=function(){return null!=jspb.Message.getField(this,6)};proto.ErrorCode={OK:0,INTERNAL_ERROR:1};
+proto.MIMC_MSG_TYPE={P2P_MESSAGE:1,P2T_MESSAGE:2,SEQUENCE_ACK:3,PACKET_ACK:4,PULL:5,COMPOUND:6,RTS_SIGNAL:7,UC_PACKET:8,P2P_PUSH_MESSAGE:9,P2T_PUSH_MESSAGE:10};proto.UC_MSG_TYPE={PING:1,PONG:2,JOIN:3,JOIN_RESP:4,QUIT:5,QUIT_RESP:6,SEQ_ACK:7,MESSAGE:8,MESSAGE_LIST:9,DISMISS:10,QUERY_ONLINE_USERS:11,QUERY_ONLINE_USERS_RESP:12};function MIMCUser(a,b,c){function d(){L=new WebSocket("wss://wsapp.chat.xiaomi.net");L.onopen=function(a){V=!0;a=new proto.ims.ClientHeader;a.setServer("xiaomi.com");a.setCmd("CONN");a.setId(v());a=a.serializeBinary();var b=new proto.ims.XMMsgConn;b.setVersion(106);b.setModel(navigator.appName);b.setOs(parseFloat(navigator.appVersion));b.setUdid("websocket");b.setSdk(31);b=b.serializeBinary();a=A(a,b);f(a)};L.onclose=function(a){void 0!==K&&null!==K?K():console.log("DisconnHandler is not registered.");
+x=!1;clearInterval(ia);clearInterval(ja);clearInterval(P)};L.onmessage=function(a){e(a)};L.onerror=function(a){clearInterval(ia);clearInterval(ja);clearInterval(P);console.log("init websocket err.")}}function e(c){var d=new FileReader;d.onload=function(){var c=this.result,d=new DataView(c);d.getUint16(0);d.getUint16(2);d.getUint16(4);d.getUint16(6);var e=d.getUint16(8),r=d.getUint32(10);d=d.getUint32(14+e+r);var M=U(c.slice(0,14+e+r));if(d===M)switch(d=new Uint8Array(c.slice(14,14+e)),e=new Uint8Array(c.slice(14+
+e,14+e+r)),c=proto.ims.ClientHeader.deserializeBinary(d),c.getCmd()){case "CONN":la=proto.ims.XMMsgConnResp.deserializeBinary(e).getChallenge();if(!0===x)console.log("user already login."),H(!0,null,null,null);else if(void 0!==W&&null!==W){var p=W();if(200!==p.code)void 0!==H&&null!==H?H(!1,"get token failed","token info code:"+p.code,"token info message:"+p.message):console.log("statusChange is not registered");else{C=p.data.miUserId;ma=atob(p.data.miUserSecurityKey);R=p.data.appPackage;S=p.data.token;
+var h=p.data.appAccount;if(b!==h)p="app account("+b+") is not same from the account("+h+") get from token",console.log(p),H(!1,null,"account not same",p);else if(a!==p.data.appId)p="appid("+a+") is not same from the appid("+p.data.appId+") get from token",console.log(p),H(!1,null,"appid not same",p);else{h=v();var u=new Map;u.set("challenge",la);u.set("chid",p.data.miChid);u.set("client_attrs","");u.set("cloud_attrs","");u.set("from",C+"@xiaomi.com/"+B);u.set("id",h);u.set("kick",0);u.set("to","xiaomi.com");
+u.set("token",p.data.token);u=g(u,"XIAOMI-PASS",p.data.miUserSecurityKey);var y=new proto.ims.XMMsgBind;y.setToken(p.data.token);y.setKick(0);y.setMethod("XIAOMI-PASS");y.setSig(u);p=y.serializeBinary();p=A(D("BIND",h),p);f(p)}}}else console.log("fetchMIMCToken is not registered");ia=setInterval(G,3E4);break;case "BIND":p=proto.ims.XMMsgBindResp.deserializeBinary(e);p.getResult()&&(x=!0,ja=setInterval(n,1E4));void 0!==H&&null!==H?H(p.getResult(),p.getErrorType(),p.getErrorReason(),p.getErrorDesc()):
+console.log("statusChange is not registered");break;case "SECMSG":c=ma+"_"+c.getId();e=m(e);r=[];d=0;var na="",w;for(w=0;256>w;w++)r[w]=w;for(w=0;256>w;w++)d=(d+r[w]+c.charCodeAt(w%c.length))%256,M=r[w],r[w]=r[d],r[d]=M;for(c=d=w=0;c<e.length;c++)w=(w+1)%256,d=(d+r[w])%256,M=r[w],r[w]=r[d],r[d]=M,na+=String.fromCharCode(e.charCodeAt(c)^r[(r[w]+r[d])%256]);c=new Uint8Array(l(na));c=proto.MIMCPacket.deserializeBinary(c);switch(c.getType()){case proto.MIMC_MSG_TYPE.PACKET_ACK:p=c.getPayload();p=proto.MIMCPacketAck.deserializeBinary(p);
+void 0!==X&&null!==X?X(p.getPacketid(),p.getSequence(),p.getTimestamp(),p.getErrormsg()):console.log("serverAckHandler is not registered");break;case proto.MIMC_MSG_TYPE.COMPOUND:p=c.getPayload();p=proto.MIMCPacketList.deserializeBinary(p);u=p.getMaxsequence();h=new proto.MIMCSequenceAck;h.setUuid(C);h.setResource(B);h.setSequence(u);u=new proto.MIMCPacket;u.setType(proto.MIMC_MSG_TYPE.SEQUENCE_ACK);u.setPayload(h.serializeBinary());h=A(D("SECMSG",v()),u.serializeBinary());f(h);if(p.getUuid()===C&&
+p.getResource()===B)for(p=p.getPacketsList(),h=0;h<p.length;h++)try{var t=p[h];switch(t.getType()){case proto.MIMC_MSG_TYPE.P2P_MESSAGE:var E=t.getPayload(),K=t.getPacketid(),N=t.getSequence(),Q=t.getTimestamp();if(!Y.has(N)){Y.add(N);var Z=proto.MIMCP2PMessage.deserializeBinary(E),O=Z.getFrom(),P=Z.getTo(),I=new qa;I.setPacketId(K);I.setSequence(N);I.setFromAccount(O.getAppaccount());I.setFromResource(O.getResource());I.setToAccount(P.getAppaccount());I.setToResource(P.getResource());I.setPayload(k(Z.getPayload()));
+I.setTimeStamp(Q);I.setBizType(Z.getBiztype());void 0!==aa&&null!==aa?aa(I):console.log("msgHandler is not registered")}break;case proto.MIMC_MSG_TYPE.P2T_MESSAGE:var V=t.getPayload(),ra=t.getPacketid(),ka=t.getSequence(),sa=t.getTimestamp();if(!Y.has(ka)){Y.add(ka);var ba=proto.MIMCP2TMessage.deserializeBinary(V),oa=ba.getFrom(),ta=ba.getTo(),J=new pa;J.setPacketId(ra);J.setSequence(ka);J.setFromAccount(oa.getAppaccount());J.setFromResource(oa.getResource());J.setTopicId(ta.getTopicid());J.setPayload(k(ba.getPayload()));
+J.setTimeStamp(sa);J.setBizType(ba.getBiztype());void 0!==ca&&null!==ca?ca(J):console.log("groupMsgHandler is not registered")}break;default:t.getPayload()}}catch(T){console.log("handleMIMCPacket "+h+" fail, err="+T.message)}break;case proto.MIMC_MSG_TYPE.UC_PACKET:t=c.getPayload();t=proto.UCPacket.deserializeBinary(t);E=t.getUser();if(E.getUuid()!==C&&E.getResource()!==B)console.log("uid | resource not the same.");else switch(t.getType()){case proto.UC_MSG_TYPE.JOIN_RESP:p=t.getPayload();p=proto.UCJoinResp.deserializeBinary(p);
+h=p.getGroup();0===p.getCode()&&z.push(h.getTopicid());void 0!==da&&null!==da?da(h.getTopicid(),p.getCode(),p.getMessage(),F.get(h.getTopicid())):console.log("ucJoinRespHandler is not registered");F.has(h.getTopicid())&&F.delete(h.getTopicid());break;case proto.UC_MSG_TYPE.QUIT_RESP:p=t.getPayload();p=proto.UCQuitResp.deserializeBinary(p);h=p.getGroup();if(0===p.getCode())for(u=0;u<z.length;u++)z[u]===h.getTopicid()&&z.slice(u,1);void 0!==ea&&null!==ea?ea(h.getTopicid(),p.getCode(),p.getMessage(),
+F.get(h.getTopicid())):console.log("ucQuitRespHandler is not registered");F.has(h.getTopicid())&&F.delete(h.getTopicid());break;case proto.UC_MSG_TYPE.MESSAGE_LIST:t=t.getPayload();t=proto.UCMessageList.deserializeBinary(t);E=t.getGroup();K=t.getMaxsequence();N=new proto.UCSequenceAck;N.setGroup(E);N.setSequence(K);q(N.serializeBinary(),proto.UC_MSG_TYPE.SEQ_ACK,v());t=t.getMessageList();for(E=0;E<t.length;E++)try{p=t[E],h=p.getGroup(),u=p.getUser(),y=new pa,y.setPacketId(p.getPacketid()),y.setSequence(p.getSequence()),
+y.setFromAccount(u.getAppaccount()),y.setFromResource(u.getResource()),y.setTopicId(h.getTopicid()),y.setPayload(k(p.getPayload())),y.setTimeStamp(p.getTimestamp()),y.setBizType(p.getBiztype()),void 0!==fa&&null!==fa?fa(y):console.log("ucMsgHandler is not registered")}catch(T){console.log("handleUCMessage "+E+" fail, err="+T.message)}break;case proto.UC_MSG_TYPE.DISMISS:p=t.getPayload();p=proto.UCDismiss.deserializeBinary(p).getGroup();for(h=0;h<z.length;h++)z[h]===p.getTopicid()&&z.slice(h,1);void 0!==
+ha&&null!==ha?ha(p.getTopicid()):console.log("ucDismissHandler is not registered");F.has(p.getTopicid())&&F.delete(p.getTopicid());break;case proto.UC_MSG_TYPE.PONG:t.getPayload();break;default:t.getType()}break;default:c.getPayload()}break;case "KICK":try{L.close()}catch(T){console.log("websocket close err="+T)}}};d.readAsArrayBuffer(c.data)}function f(a){try{L.send(a)}catch(M){console.log("websocket send err="+M)}}function g(a,b,c){var d=b+"&";a.forEach(function(a,b,c){d=d+b+"="+a+"&"});d+=c;a=
+new Uint8Array(l(d));a=m(Q(a));return btoa(a)}function n(){if(0!==z.length){for(var b=Array(z.length),c=0;c<z.length;c++){var d=new proto.UCGroup;d.setAppid(a);d.setTopicid(z[c]);b[c]=d}c=new proto.UCPing;c.setGroupList(b);q(c.serializeBinary(),proto.UC_MSG_TYPE.PING,v())}}function q(c,d){var e=new proto.MIMCUser;e.setAppid(a);e.setAppaccount(b);e.setUuid(C);e.setResource(B);var g=new proto.UCPacket;g.setUser(e);g.setType(d);g.setPayload(c);c=v();g.setPacketid(c);d=new proto.MIMCPacket;d.setPacketid(c);
+d.setPackage(R);d.setType(proto.MIMC_MSG_TYPE.UC_PACKET);d.setPayload(g.serializeBinary());g=A(D("SECMSG",c),d.serializeBinary());f(g);return c}function G(){var a=new proto.ims.XMMsgPing;a=A(D("PING",v()),a.serializeBinary());f(a)}function D(a,b){var c=new proto.ims.ClientHeader;c.setChid(9);c.setUuid(C);c.setServer("xiaomi.com");c.setResource(B);c.setCmd(a);c.setId(b);return c.serializeBinary()}function v(){var a="web"+(new Date).getTime()+O;O++;O%=1E3;return a}function A(a,b){var c=a.length,d=b.length,
+e=18+c+d,f=new ArrayBuffer(e),g=new DataView(f);g.setUint8(0,194);g.setUint8(1,254);g.setUint8(2,0);g.setUint8(3,4);g.setUint16(4,3);g.setUint16(6,2);g.setUint16(8,c);g.setUint32(10,d);for(var r=0;r<c;r++)g.setUint8(14+r,a[r]);for(r=0;r<d;r++)g.setUint8(14+c+r,b[r]);a=U(f.slice(0,e-4));g.setUint32(e-4,a);return f}function U(a){a=new Uint8Array(a);for(var b=1,c=0,d=0,e=a.length,f;0<e;){f=5550<e?5550:e;e-=f;do b+=a[d++],c+=b;while(--f);b%=65521;c%=65521}return(c<<16|b)>>>0}function Q(a){var b,c=(a.length+
+8>>>6<<4)+16,d=new Uint8Array(c<<2);d.set(new Uint8Array(a.buffer));d=new Uint32Array(d.buffer);var e=new DataView(d.buffer);for(b=0;b<c;b++)d[b]=e.getUint32(b<<2);d[a.length>>2]|=128<<24-8*(a.length&3);d[c-1]=a.length<<3;c=[];var f=[function(){return h[1]&h[2]|~h[1]&h[3]},function(){return h[1]^h[2]^h[3]},function(){return h[1]&h[2]|h[1]&h[3]|h[2]&h[3]},function(){return h[1]^h[2]^h[3]}],g=function(a,b){return a<<b|a>>>32-b},r=[1518500249,1859775393,-1894007588,-899497514],h=[1732584193,-271733879,
+null,null,-1009589776];h[2]=~h[0];h[3]=~h[1];for(b=0;b<d.length;b+=16){var k=h.slice(0);for(a=0;80>a;a++)c[a]=16>a?d[b+a]:g(c[a-3]^c[a-8]^c[a-14]^c[a-16],1),e=g(h[0],5)+f[a/20|0]()+h[4]+c[a]+r[a/20|0]|0,h[1]=g(h[1],30),h.pop(),h.unshift(e);for(a=0;5>a;a++)h[a]=h[a]+k[a]|0}e=new DataView((new Uint32Array(h)).buffer);for(b=0;5>b;b++)h[b]=e.getUint32(b<<2);return new Uint8Array((new Uint32Array(h)).buffer)}function l(a){for(var b=new ArrayBuffer(a.length),c=new Uint8Array(b),d=0,e=a.length;d<e;d++)c[d]=
+a.charCodeAt(d);return b}function m(a){for(var b="",c=0;c<a.byteLength;c++)b+=String.fromCharCode(a[c]);return b}function h(a){for(var b=0,c=new Uint8Array(4*a.length),d=0;d!=a.length;d++){var e=a.charCodeAt(d);if(128>e)c[b++]=e;else{if(2048>e)c[b++]=e>>6|192;else{if(55295<e&&56320>e){if(++d==a.length)throw"UTF-8 encode: incomplete surrogate pair";var f=a.charCodeAt(d);if(56320>f||57343<f)throw"UTF-8 encode: second char code 0x"+f.toString(16)+" at index "+d+" in surrogate pair out of range";e=65536+
+((e&1023)<<10)+(f&1023);c[b++]=e>>18|240;c[b++]=e>>12&63|128}else c[b++]=e>>12|224;c[b++]=e>>6&63|128}c[b++]=e&63|128}}return c.subarray(0,b)}function k(a){var b;var c="";var d=a.length;for(b=0;b<d;){var e=a[b++];switch(e>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:c+=String.fromCharCode(e);break;case 12:case 13:var f=a[b++];c+=String.fromCharCode((e&31)<<6|f&63);break;case 14:f=a[b++];var g=a[b++];c+=String.fromCharCode((e&15)<<12|(f&63)<<6|(g&63)<<0)}}return c}var C="",O=0,x=!1,
+V=!1,B="",S="",L,ia,ja,z=[],F=new Map;if(c)B=c;else try{B=md5(window.navigator.userAgent)}catch(r){B="resWeb",console.log("md5 failed,err="+r)}var aa,ca,X,W,H,K,da,ea,fa,ha,la,ma,R,Y=new Set,P=setInterval(function(){if(!1!==x){var a=new XMLHttpRequest;a.open("GET","https://mimc.chat.xiaomi.net/api/uctopic/topics",!0);a.setRequestHeader("content-type","application/json");a.setRequestHeader("token",S);a.onreadystatechange=function(){if(4===a.readyState&&200===a.status){var b=JSON.parse(a.response);
+if(200===b.code&&"success"===b.message){b=b.data;for(var c=0;c<b.length;c++)z.push(b[c])}}};a.send();clearInterval(P);return!0}},1E3);this.registerP2PMsgHandler=function(a){aa=a};this.registerGroupMsgHandler=function(a){ca=a};this.registerServerAckHandler=function(a){X=a};this.registerFetchToken=function(a){W=a};this.registerStatusChange=function(a){H=a};this.registerDisconnHandler=function(a){K=a};this.registerUCJoinRespHandler=function(a){da=a};this.registerUCQuitRespHandler=function(a){ea=a};this.registerUCMsgHandler=
+function(a){fa=a};this.registerUCDismissHandler=function(a){ha=a};this.getToken=function(){!1===x&&console.log("user not login, token is null.");return S};this.getUuid=function(){!1===x&&console.log("user not login, uuid is null.");return C};this.getAppAccount=function(){return b};this.isConnected=function(){return V};this.isLogin=function(){return x};this.login=function(){d()};this.logout=function(){var a=A(D("UBND",v()),"");f(a)};this.sendMessage=function(a,b,c){return this.sendMessage(a,b,"",void 0===
+c?!0:c)};this.sendMessage=function(c,d,e,g){g=void 0===g?!0:g;if(!1===x)throw console.log("user not login."),"user not login";if(10240<d.length)throw console.log("packet len > 10k"),"packet len > 10k";var k=new proto.MIMCUser;k.setAppid(a);k.setAppaccount(b);k.setUuid(C);k.setResource(B);var r=new proto.MIMCUser;r.setAppid(a);r.setAppaccount(c);c=new proto.MIMCP2PMessage;c.setFrom(k);c.setTo(r);c.setPayload(h(d));c.setIsstore(g);c.setBiztype(e);d=v();e=new proto.MIMCPacket;e.setPacketid(d);e.setPackage(R);
+e.setType(proto.MIMC_MSG_TYPE.P2P_MESSAGE);e.setPayload(c.serializeBinary());c=A(D("SECMSG",d),e.serializeBinary());f(c);return d};this.sendGroupMessage=function(a,b,c){return this.sendGroupMessage(a,b,"",void 0===c?!0:c)};this.sendGroupMessage=function(c,d,e,g){g=void 0===g?!0:g;if(!1===x)throw console.log("user not login."),"user not login.";if(10240<d.length)throw console.log("packet len > 10k"),"packet len > 10k";var k=new proto.MIMCGroup;k.setAppid(a);k.setTopicid(c);var l=new proto.MIMCUser;
+l.setAppid(a);l.setAppaccount(b);l.setUuid(C);l.setResource(B);c=new proto.MIMCP2TMessage;c.setFrom(l);c.setTo(k);c.setPayload(h(d));c.setIsstore(g);c.setBiztype(e);d=v();e=new proto.MIMCPacket;e.setPacketid(d);e.setPackage(R);e.setType(proto.MIMC_MSG_TYPE.P2T_MESSAGE);e.setPayload(c.serializeBinary());c=A(D("SECMSG",d),e.serializeBinary());f(c);return d};this.pull=function(){if(!1===x)throw console.log("user not login."),"user not login.";if(10240<groupMessage.length)throw console.log("packet len > 10k"),
+"packet len > 10k";var a=new proto.MIMCPull;a.setUuid(C);a.setResource(B);a=v();var b=new proto.MIMCPacket;b.setPacketid(a);b.setPackage(R);b.setType(proto.MIMC_MSG_TYPE.PULL);b=A(D("SECMSG",a),b.serializeBinary());f(b);return a};this.createUnlimitedGroup=function(b,c,d){if(!1===x)throw console.log("user not login."),"user not login.";var e={topicName:b},f=new XMLHttpRequest;f.open("POST","https://mimc.chat.xiaomi.net/api/uctopic",!0);f.setRequestHeader("content-type","application/json");f.setRequestHeader("token",
+S);f.onreadystatechange=function(){if(4===f.readyState&&200===f.status){var e=JSON.parse(f.response);if(200===e.code&&"success"===e.message){e=e.data.topicId;var g=new proto.UCGroup;g.setAppid(a);g.setTopicid(e);var h=new proto.UCJoin;h.setGroup(g);q(h.serializeBinary(),proto.UC_MSG_TYPE.JOIN,v());F.set(e,d);c(e,b,!0,"",d)}else console.log("create uc group failed,code="+e.code+",message="+e.message),c(0,b,!1,e.message,d)}else 200!==f.status&&(console.log("create uc group failed,readyState="+f.readyState+
+",status="+f.status),c(0,b,!1,"readyState="+f.readyState+",status="+f.status,d))};f.send(JSON.stringify(e))};this.dismissUnlimitedGroup=function(a,b,c){if(!1===x)throw console.log("user not login."),"user not login.";var d=new XMLHttpRequest;d.open("DELETE","https://mimc.chat.xiaomi.net/api/uctopic",!0);d.setRequestHeader("content-type","application/json");d.setRequestHeader("token",S);d.setRequestHeader("topicId",a);d.onreadystatechange=function(){if(4===d.readyState&&200===d.status){var e=JSON.parse(d.response);
+if(200===e.code&&"success"===e.message){for(e=0;e<z.length;e++)z[e]===a&&z.slice(e,1);b(!0,a,c)}else console.log("dismiss uc group failed,code="+e.code+",message="+e.message),b(!1,a,c)}else 200!==d.status&&(console.log("dismiss uc group failed,readyState="+d.readyState+",status="+d.status),b(!1,a,c))};d.send()};this.joinUnlimitedGroup=function(b,c){if(!1===x)throw console.log("user not login."),"user not login.";F.set(b,c);c=new proto.UCGroup;c.setAppid(a);c.setTopicid(b);b=new proto.UCJoin;b.setGroup(c);
+return q(b.serializeBinary(),proto.UC_MSG_TYPE.JOIN,v())};this.quitUnlimitedGroup=function(b,c){if(!1===x)throw console.log("user not login."),"user not login.";F.set(b,c);c=new proto.UCGroup;c.setAppid(a);c.setTopicid(b);b=new proto.UCQuit;b.setGroup(c);return q(b.serializeBinary(),proto.UC_MSG_TYPE.QUIT,v())};this.sendUnlimitedGroupMessage=function(a,b,c){return this.sendUnlimitedGroupMessage(a,b,"",void 0===c?!1:c)};this.sendUnlimitedGroupMessage=function(c,d,e,f){f=void 0===f?!1:f;if(!1===x)throw console.log("user not login."),
+"user not login.";if(10240<d.length)throw console.log("packet len > 10k"),"packet len > 10k";var g=new proto.MIMCUser;g.setAppid(a);g.setAppaccount(b);g.setUuid(C);g.setResource(B);var k=new proto.UCGroup;k.setAppid(a);k.setTopicid(c);c=new proto.UCMessage;c.setGroup(k);c.setPayload(h(d));c.setIsstore(!1);c.setUser(g);d=v();c.setPacketid(d);c.setBiztype(e);c.setIsstore(f);return q(c.serializeBinary(),proto.UC_MSG_TYPE.MESSAGE,d)};var qa=function(){var a,b,c,d,e,f,g,h,k;this.setPacketId=function(b){a=
+b};this.getPacketId=function(){return a};this.setFromAccount=function(a){c=a};this.getFromAccount=function(){return c};this.setFromResource=function(a){d=a};this.getFromResource=function(){return d};this.setToAccount=function(a){e=a};this.getToAccount=function(){return e};this.setToResource=function(a){f=a};this.getToResource=function(){return f};this.setSequence=function(a){b=a};this.getSequence=function(){return b};this.setPayload=function(a){g=a};this.getPayload=function(){return g};this.setTimeStamp=
+function(a){h=a};this.getTimeStamp=function(){return h};this.setBizType=function(a){k=a};this.getBizType=function(){return k}},pa=function(){var a,b,c,d,e,f,g,h;this.setPacketId=function(b){a=b};this.getPacketId=function(){return a};this.setFromAccount=function(a){c=a};this.getFromAccount=function(){return c};this.setFromResource=function(a){d=a};this.getFromResource=function(){return d};this.setSequence=function(a){b=a};this.getSequence=function(){return b};this.setTopicId=function(a){e=a};this.getTopicId=
+function(){return e};this.setPayload=function(a){f=a};this.getPayload=function(){return f};this.setTimeStamp=function(a){g=a};this.getTimeStamp=function(){return g};this.setBizType=function(a){h=a};this.getBizType=function(){return h}}};

+ 29 - 0
assets/lib/michat/template.html

@@ -0,0 +1,29 @@
+<div id="michat">
+    <ul class="michat-left layui-unselect">
+        <li ng-repeat="u in list" ng-class="{true:'michat-this'}[u.active]" ng-click="switchUser(u)">
+            <img alt="img" ng-src="{{u.headimg}}">
+            <span ng-bind="u.nickname"></span>
+            <i ng-click="removeUser(u)" class="layui-icon layui-icon-close-fill" ng-if="!u.active"></i>
+        </li>
+    </ul>
+    <div class="michat-right">
+        <div class="michat-right-header layui-layer-title layui-unselect">
+            <img alt="img" ng-src="{{user.headimg}}">
+            <span class="michat-right-header-username" ng-bind="user.nickname"></span>
+        </div>
+        <ul class="michat-right-list">
+            <li ng-repeat="m in user.message" ng-class="{right:'michat-right-list-right'}[m.float]">
+                <div class="michat-right-list-item-user"><img alt="img" ng-src="{{m.headimg}}"></div>
+                <div class="michat-right-list-item-text" ng-bind="m.content"></div>
+            </li>
+        </ul>
+        <div class="michat-right-footer">
+            <label class="michat-right-footer-textarea">
+                <textarea placeholder="请输入回复内容" ng-model="text" name="content"></textarea>
+            </label>
+            <div class="michat-right-footer-bottom">
+                <span class="layui-unselect" ng-click="replyUser()">发 送</span>
+            </div>
+        </div>
+    </div>
+</div>

+ 1 - 0
assets/lib/require/css.js

@@ -0,0 +1 @@
+define(function(){if("undefined"==typeof window)return{load:function(e,t,n){n()}};var e=document.getElementsByTagName("head")[0],t=window.navigator.userAgent.match(/Trident\/([^ ;]*)|AppleWebKit\/([^ ;]*)|Opera\/([^ ;]*)|rv\:([^ ;]*)(.*?)Gecko\/([^ ;]*)|MSIE\s([^ ;]*)|AndroidWebKit\/([^ ;]*)/)||0,n=!1,r=!0;t[1]||t[7]?n=parseInt(t[1])<6||parseInt(t[7])<=9:t[2]||t[8]?r=!1:t[4]&&(n=parseInt(t[4])<18);var o={};o.pluginBuilder="./css-builder";var a,i,s,l=function(){a=document.createElement("style"),e.appendChild(a),i=a.styleSheet||a.sheet},u=0,d=[],c=function(e){u++,32==u&&(l(),u=0),i.addImport(e),a.onload=function(){f()}},f=function(){s();var e=d.shift();return e?(s=e[1],void c(e[0])):void(s=null)},h=function(e,t){if(i&&i.addImport||l(),i&&i.addImport)s?d.push([e,t]):(c(e),s=t);else{a.textContent='@import "'+e+'";';var n=setInterval(function(){try{a.sheet.cssRules,clearInterval(n),t()}catch(e){}},10)}},p=function(t,n){var o=document.createElement("link");if(o.type="text/css",o.rel="stylesheet",r)o.onload=function(){o.onload=function(){},setTimeout(n,7)};else var a=setInterval(function(){for(var e=0;e<document.styleSheets.length;e++){var t=document.styleSheets[e];if(t.href==o.href)return clearInterval(a),n()}},10);o.href=t,e.appendChild(o)};return o.normalize=function(e,t){return".css"==e.substr(e.length-4,4)&&(e=e.substr(0,e.length-4)),t(e)},o.load=function(e,t,r){(n?h:p)(t.toUrl(e+".css"),r)},o});

File diff suppressed because it is too large
+ 0 - 0
assets/lib/require/require.js


File diff suppressed because it is too large
+ 3 - 0
assets/lib/socket/swfobject.js


File diff suppressed because it is too large
+ 5 - 0
assets/lib/socket/websocket.js


BIN
assets/lib/socket/websocket.swf


BIN
assets/lib/supersized/progress.gif


+ 677 - 0
assets/lib/supersized/supersized.3.2.7.min.js

@@ -0,0 +1,677 @@
+/*
+
+	Supersized - Fullscreen Slideshow jQuery Plugin
+	Version : 3.2.7
+	Site	: www.buildinternet.com/project/supersized
+	
+	Author	: Sam Dunn
+	Company : One Mighty Roar (www.onemightyroar.com)
+	License : MIT License / GPL License
+	
+*/
+
+(function (a) {
+    a(document).ready(function () {
+        a("body").append('<div id="supersized-loader"></div><ul id="supersized"></ul>')
+    });
+    a.supersized = function (b) {
+        var c = "#supersized", d = this;
+        d.$el = a(c);
+        d.el = c;
+        vars = a.supersized.vars;
+        d.$el.data("supersized", d);
+        api = d.$el.data("supersized");
+        d.init = function () {
+            a.supersized.vars = a.extend(a.supersized.vars, a.supersized.themeVars);
+            a.supersized.vars.options = a.extend({}, a.supersized.defaultOptions, a.supersized.themeOptions, b);
+            d.options = a.supersized.vars.options;
+            d._build()
+        };
+        d._build = function () {
+            var g = 0, e = "", j = "", h, f = "", i;
+            while (g <= d.options.slides.length - 1) {
+                switch (d.options.slide_links) {
+                    case"num":
+                        h = g;
+                        break;
+                    case"name":
+                        h = d.options.slides[g].title;
+                        break;
+                    case"blank":
+                        h = "";
+                        break
+                }
+                e = e + '<li class="slide-' + g + '"></li>';
+                if (g == d.options.start_slide - 1) {
+                    if (d.options.slide_links) {
+                        j = j + '<li class="slide-link-' + g + ' current-slide"><a>' + h + "</a></li>"
+                    }
+                    if (d.options.thumb_links) {
+                        d.options.slides[g].thumb ? i = d.options.slides[g].thumb : i = d.options.slides[g].image;
+                        f = f + '<li class="thumb' + g + ' current-thumb"><img src="' + i + '"/></li>'
+                    }
+                } else {
+                    if (d.options.slide_links) {
+                        j = j + '<li class="slide-link-' + g + '" ><a>' + h + "</a></li>"
+                    }
+                    if (d.options.thumb_links) {
+                        d.options.slides[g].thumb ? i = d.options.slides[g].thumb : i = d.options.slides[g].image;
+                        f = f + '<li class="thumb' + g + '"><img src="' + i + '"/></li>'
+                    }
+                }
+                g++
+            }
+            if (d.options.slide_links) {
+                a(vars.slide_list).html(j)
+            }
+            if (d.options.thumb_links && vars.thumb_tray.length) {
+                a(vars.thumb_tray).append('<ul id="' + vars.thumb_list.replace("#", "") + '">' + f + "</ul>")
+            }
+            a(d.el).append(e);
+            if (d.options.thumbnail_navigation) {
+                vars.current_slide - 1 < 0 ? prevThumb = d.options.slides.length - 1 : prevThumb = vars.current_slide - 1;
+                a(vars.prev_thumb).show().html(a("<img/>").attr("src", d.options.slides[prevThumb].image));
+                vars.current_slide == d.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1;
+                a(vars.next_thumb).show().html(a("<img/>").attr("src", d.options.slides[nextThumb].image))
+            }
+            d._start()
+        };
+        d._start = function () {
+            if (d.options.start_slide) {
+                vars.current_slide = d.options.start_slide - 1
+            } else {
+                vars.current_slide = Math.floor(Math.random() * d.options.slides.length)
+            }
+            var o = d.options.new_window ? ' target="_blank"' : "";
+            if (d.options.performance == 3) {
+                d.$el.addClass("speed")
+            } else {
+                if ((d.options.performance == 1) || (d.options.performance == 2)) {
+                    d.$el.addClass("quality")
+                }
+            }
+            if (d.options.random) {
+                arr = d.options.slides;
+                for (var h, m, k = arr.length; k; h = parseInt(Math.random() * k), m = arr[--k], arr[k] = arr[h], arr[h] = m) {
+                }
+                d.options.slides = arr
+            }
+            if (d.options.slides.length > 1) {
+                if (d.options.slides.length > 2) {
+                    vars.current_slide - 1 < 0 ? loadPrev = d.options.slides.length - 1 : loadPrev = vars.current_slide - 1;
+                    var g = (d.options.slides[loadPrev].url) ? "href='" + d.options.slides[loadPrev].url + "'" : "";
+                    var q = a('<img src="' + d.options.slides[loadPrev].image + '"/>');
+                    var n = d.el + " li:eq(" + loadPrev + ")";
+                    q.appendTo(n).wrap("<a " + g + o + "></a>").parent().parent().addClass("image-loading prevslide");
+                    q.load(function () {
+                        a(this).data("origWidth", a(this).width()).data("origHeight", a(this).height());
+                        d.resizeNow()
+                    })
+                }
+            } else {
+                d.options.slideshow = 0
+            }
+            g = (api.getField("url")) ? "href='" + api.getField("url") + "'" : "";
+            var l = a('<img src="' + api.getField("image") + '"/>');
+            var f = d.el + " li:eq(" + vars.current_slide + ")";
+            l.appendTo(f).wrap("<a " + g + o + "></a>").parent().parent().addClass("image-loading activeslide");
+            l.load(function () {
+                d._origDim(a(this));
+                d.resizeNow();
+                d.launch();
+                if (typeof theme != "undefined" && typeof theme._init == "function") {
+                    theme._init()
+                }
+            });
+            if (d.options.slides.length > 1) {
+                vars.current_slide == d.options.slides.length - 1 ? loadNext = 0 : loadNext = vars.current_slide + 1;
+                g = (d.options.slides[loadNext].url) ? "href='" + d.options.slides[loadNext].url + "'" : "";
+                var e = a('<img src="' + d.options.slides[loadNext].image + '"/>');
+                var p = d.el + " li:eq(" + loadNext + ")";
+                e.appendTo(p).wrap("<a " + g + o + "></a>").parent().parent().addClass("image-loading");
+                e.load(function () {
+                    a(this).data("origWidth", a(this).width()).data("origHeight", a(this).height());
+                    d.resizeNow()
+                })
+            }
+            d.$el.css("visibility", "hidden");
+            a(".load-item").hide()
+        };
+        d.launch = function () {
+            d.$el.css("visibility", "visible");
+            a("#supersized-loader").remove();
+            if (typeof theme != "undefined" && typeof theme.beforeAnimation == "function") {
+                theme.beforeAnimation("next")
+            }
+            a(".load-item").show();
+            if (d.options.keyboard_nav) {
+                a(document.documentElement).keyup(function (e) {
+                    if (vars.in_animation) {
+                        return false
+                    }
+                    if ((e.keyCode == 37) || (e.keyCode == 40)) {
+                        clearInterval(vars.slideshow_interval);
+                        d.prevSlide()
+                    } else {
+                        if ((e.keyCode == 39) || (e.keyCode == 38)) {
+                            clearInterval(vars.slideshow_interval);
+                            d.nextSlide()
+                        } else {
+                            if (e.keyCode == 32 && !vars.hover_pause) {
+                                clearInterval(vars.slideshow_interval);
+                                d.playToggle()
+                            }
+                        }
+                    }
+                })
+            }
+            if (d.options.slideshow && d.options.pause_hover) {
+                a(d.el).hover(function () {
+                    if (vars.in_animation) {
+                        return false
+                    }
+                    vars.hover_pause = true;
+                    if (!vars.is_paused) {
+                        vars.hover_pause = "resume";
+                        d.playToggle()
+                    }
+                }, function () {
+                    if (vars.hover_pause == "resume") {
+                        d.playToggle();
+                        vars.hover_pause = false
+                    }
+                })
+            }
+            if (d.options.slide_links) {
+                a(vars.slide_list + "> li").click(function () {
+                    index = a(vars.slide_list + "> li").index(this);
+                    targetSlide = index + 1;
+                    d.goTo(targetSlide);
+                    return false
+                })
+            }
+            if (d.options.thumb_links) {
+                a(vars.thumb_list + "> li").click(function () {
+                    index = a(vars.thumb_list + "> li").index(this);
+                    targetSlide = index + 1;
+                    api.goTo(targetSlide);
+                    return false
+                })
+            }
+            if (d.options.slideshow && d.options.slides.length > 1) {
+                if (d.options.autoplay && d.options.slides.length > 1) {
+                    vars.slideshow_interval = setInterval(d.nextSlide, d.options.slide_interval)
+                } else {
+                    vars.is_paused = true
+                }
+                a(".load-item img").bind("contextmenu mousedown", function () {
+                    return false
+                })
+            }
+            a(window).resize(function () {
+                d.resizeNow()
+            })
+        };
+        d.resizeNow = function () {
+            return d.$el.each(function () {
+                a("img", d.el).each(function () {
+                    thisSlide = a(this);
+                    var f = (thisSlide.data("origHeight") / thisSlide.data("origWidth")).toFixed(2);
+                    var e = d.$el.width(), h = d.$el.height(), i;
+                    if (d.options.fit_always) {
+                        if ((h / e) > f) {
+                            g()
+                        } else {
+                            j()
+                        }
+                    } else {
+                        if ((h <= d.options.min_height) && (e <= d.options.min_width)) {
+                            if ((h / e) > f) {
+                                d.options.fit_landscape && f < 1 ? g(true) : j(true)
+                            } else {
+                                d.options.fit_portrait && f >= 1 ? j(true) : g(true)
+                            }
+                        } else {
+                            if (e <= d.options.min_width) {
+                                if ((h / e) > f) {
+                                    d.options.fit_landscape && f < 1 ? g(true) : j()
+                                } else {
+                                    d.options.fit_portrait && f >= 1 ? j() : g(true)
+                                }
+                            } else {
+                                if (h <= d.options.min_height) {
+                                    if ((h / e) > f) {
+                                        d.options.fit_landscape && f < 1 ? g() : j(true)
+                                    } else {
+                                        d.options.fit_portrait && f >= 1 ? j(true) : g()
+                                    }
+                                } else {
+                                    if ((h / e) > f) {
+                                        d.options.fit_landscape && f < 1 ? g() : j()
+                                    } else {
+                                        d.options.fit_portrait && f >= 1 ? j() : g()
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                    function g(k) {
+                        if (k) {
+                            if (thisSlide.width() < e || thisSlide.width() < d.options.min_width) {
+                                if (thisSlide.width() * f >= d.options.min_height) {
+                                    thisSlide.width(d.options.min_width);
+                                    thisSlide.height(thisSlide.width() * f)
+                                } else {
+                                    j()
+                                }
+                            }
+                        } else {
+                            if (d.options.min_height >= h && !d.options.fit_landscape) {
+                                if (e * f >= d.options.min_height || (e * f >= d.options.min_height && f <= 1)) {
+                                    thisSlide.width(e);
+                                    thisSlide.height(e * f)
+                                } else {
+                                    if (f > 1) {
+                                        thisSlide.height(d.options.min_height);
+                                        thisSlide.width(thisSlide.height() / f)
+                                    } else {
+                                        if (thisSlide.width() < e) {
+                                            thisSlide.width(e);
+                                            thisSlide.height(thisSlide.width() * f)
+                                        }
+                                    }
+                                }
+                            } else {
+                                thisSlide.width(e);
+                                thisSlide.height(e * f)
+                            }
+                        }
+                    }
+
+                    function j(k) {
+                        if (k) {
+                            if (thisSlide.height() < h) {
+                                if (thisSlide.height() / f >= d.options.min_width) {
+                                    thisSlide.height(d.options.min_height);
+                                    thisSlide.width(thisSlide.height() / f)
+                                } else {
+                                    g(true)
+                                }
+                            }
+                        } else {
+                            if (d.options.min_width >= e) {
+                                if (h / f >= d.options.min_width || f > 1) {
+                                    thisSlide.height(h);
+                                    thisSlide.width(h / f)
+                                } else {
+                                    if (f <= 1) {
+                                        thisSlide.width(d.options.min_width);
+                                        thisSlide.height(thisSlide.width() * f)
+                                    }
+                                }
+                            } else {
+                                thisSlide.height(h);
+                                thisSlide.width(h / f)
+                            }
+                        }
+                    }
+
+                    if (thisSlide.parents("li").hasClass("image-loading")) {
+                        a(".image-loading").removeClass("image-loading")
+                    }
+                    if (d.options.horizontal_center) {
+                        a(this).css("left", (e - a(this).width()) / 2)
+                    }
+                    if (d.options.vertical_center) {
+                        a(this).css("top", (h - a(this).height()) / 2)
+                    }
+                });
+                if (d.options.image_protect) {
+                    a("img", d.el).bind("contextmenu mousedown", function () {
+                        return false
+                    })
+                }
+                return false
+            })
+        };
+        d.nextSlide = function () {
+            if (vars.in_animation || !api.options.slideshow) {
+                return false
+            } else {
+                vars.in_animation = true
+            }
+            clearInterval(vars.slideshow_interval);
+            var h = d.options.slides, e = d.$el.find(".activeslide");
+            a(".prevslide").removeClass("prevslide");
+            e.removeClass("activeslide").addClass("prevslide");
+            vars.current_slide + 1 == d.options.slides.length ? vars.current_slide = 0 : vars.current_slide++;
+            var g = a(d.el + " li:eq(" + vars.current_slide + ")"), i = d.$el.find(".prevslide");
+            if (d.options.performance == 1) {
+                d.$el.removeClass("quality").addClass("speed")
+            }
+            loadSlide = false;
+            vars.current_slide == d.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1;
+            var k = d.el + " li:eq(" + loadSlide + ")";
+            if (!a(k).html()) {
+                var j = d.options.new_window ? ' target="_blank"' : "";
+                imageLink = (d.options.slides[loadSlide].url) ? "href='" + d.options.slides[loadSlide].url + "'" : "";
+                var f = a('<img src="' + d.options.slides[loadSlide].image + '"/>');
+                f.appendTo(k).wrap("<a " + imageLink + j + "></a>").parent().parent().addClass("image-loading").css("visibility", "hidden");
+                f.load(function () {
+                    d._origDim(a(this));
+                    d.resizeNow()
+                })
+            }
+            if (d.options.thumbnail_navigation == 1) {
+                vars.current_slide - 1 < 0 ? prevThumb = d.options.slides.length - 1 : prevThumb = vars.current_slide - 1;
+                a(vars.prev_thumb).html(a("<img/>").attr("src", d.options.slides[prevThumb].image));
+                nextThumb = loadSlide;
+                a(vars.next_thumb).html(a("<img/>").attr("src", d.options.slides[nextThumb].image))
+            }
+            if (typeof theme != "undefined" && typeof theme.beforeAnimation == "function") {
+                theme.beforeAnimation("next")
+            }
+            if (d.options.slide_links) {
+                a(".current-slide").removeClass("current-slide");
+                a(vars.slide_list + "> li").eq(vars.current_slide).addClass("current-slide")
+            }
+            g.css("visibility", "hidden").addClass("activeslide");
+            switch (d.options.transition) {
+                case 0:
+                case"none":
+                    g.css("visibility", "visible");
+                    vars.in_animation = false;
+                    d.afterAnimation();
+                    break;
+                case 1:
+                case"fade":
+                    g.animate({opacity: 0}, 0).css("visibility", "visible").animate({opacity: 1, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 2:
+                case"slideTop":
+                    g.animate({top: -d.$el.height()}, 0).css("visibility", "visible").animate({top: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 3:
+                case"slideRight":
+                    g.animate({left: d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 4:
+                case"slideBottom":
+                    g.animate({top: d.$el.height()}, 0).css("visibility", "visible").animate({top: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 5:
+                case"slideLeft":
+                    g.animate({left: -d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 6:
+                case"carouselRight":
+                    g.animate({left: d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    e.animate({left: -d.$el.width(), avoidTransforms: false}, d.options.transition_speed);
+                    break;
+                case 7:
+                case"carouselLeft":
+                    g.animate({left: -d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    e.animate({left: d.$el.width(), avoidTransforms: false}, d.options.transition_speed);
+                    break
+            }
+            return false
+        };
+        d.prevSlide = function () {
+            if (vars.in_animation || !api.options.slideshow) {
+                return false
+            } else {
+                vars.in_animation = true
+            }
+            clearInterval(vars.slideshow_interval);
+            var h = d.options.slides, e = d.$el.find(".activeslide");
+            a(".prevslide").removeClass("prevslide");
+            e.removeClass("activeslide").addClass("prevslide");
+            vars.current_slide == 0 ? vars.current_slide = d.options.slides.length - 1 : vars.current_slide--;
+            var g = a(d.el + " li:eq(" + vars.current_slide + ")"), i = d.$el.find(".prevslide");
+            if (d.options.performance == 1) {
+                d.$el.removeClass("quality").addClass("speed")
+            }
+            loadSlide = vars.current_slide;
+            var k = d.el + " li:eq(" + loadSlide + ")";
+            if (!a(k).html()) {
+                var j = d.options.new_window ? ' target="_blank"' : "";
+                imageLink = (d.options.slides[loadSlide].url) ? "href='" + d.options.slides[loadSlide].url + "'" : "";
+                var f = a('<img src="' + d.options.slides[loadSlide].image + '"/>');
+                f.appendTo(k).wrap("<a " + imageLink + j + "></a>").parent().parent().addClass("image-loading").css("visibility", "hidden");
+                f.load(function () {
+                    d._origDim(a(this));
+                    d.resizeNow()
+                })
+            }
+            if (d.options.thumbnail_navigation == 1) {
+                loadSlide == 0 ? prevThumb = d.options.slides.length - 1 : prevThumb = loadSlide - 1;
+                a(vars.prev_thumb).html(a("<img/>").attr("src", d.options.slides[prevThumb].image));
+                vars.current_slide == d.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1;
+                a(vars.next_thumb).html(a("<img/>").attr("src", d.options.slides[nextThumb].image))
+            }
+            if (typeof theme != "undefined" && typeof theme.beforeAnimation == "function") {
+                theme.beforeAnimation("prev")
+            }
+            if (d.options.slide_links) {
+                a(".current-slide").removeClass("current-slide");
+                a(vars.slide_list + "> li").eq(vars.current_slide).addClass("current-slide")
+            }
+            g.css("visibility", "hidden").addClass("activeslide");
+            switch (d.options.transition) {
+                case 0:
+                case"none":
+                    g.css("visibility", "visible");
+                    vars.in_animation = false;
+                    d.afterAnimation();
+                    break;
+                case 1:
+                case"fade":
+                    g.animate({opacity: 0}, 0).css("visibility", "visible").animate({opacity: 1, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 2:
+                case"slideTop":
+                    g.animate({top: d.$el.height()}, 0).css("visibility", "visible").animate({top: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 3:
+                case"slideRight":
+                    g.animate({left: -d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 4:
+                case"slideBottom":
+                    g.animate({top: -d.$el.height()}, 0).css("visibility", "visible").animate({top: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 5:
+                case"slideLeft":
+                    g.animate({left: d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    break;
+                case 6:
+                case"carouselRight":
+                    g.animate({left: -d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    e.animate({left: 0}, 0).animate({left: d.$el.width(), avoidTransforms: false}, d.options.transition_speed);
+                    break;
+                case 7:
+                case"carouselLeft":
+                    g.animate({left: d.$el.width()}, 0).css("visibility", "visible").animate({left: 0, avoidTransforms: false}, d.options.transition_speed, function () {
+                        d.afterAnimation()
+                    });
+                    e.animate({left: 0}, 0).animate({left: -d.$el.width(), avoidTransforms: false}, d.options.transition_speed);
+                    break
+            }
+            return false
+        };
+        d.playToggle = function () {
+            if (vars.in_animation || !api.options.slideshow) {
+                return false
+            }
+            if (vars.is_paused) {
+                vars.is_paused = false;
+                if (typeof theme != "undefined" && typeof theme.playToggle == "function") {
+                    theme.playToggle("play")
+                }
+                vars.slideshow_interval = setInterval(d.nextSlide, d.options.slide_interval)
+            } else {
+                vars.is_paused = true;
+                if (typeof theme != "undefined" && typeof theme.playToggle == "function") {
+                    theme.playToggle("pause")
+                }
+                clearInterval(vars.slideshow_interval)
+            }
+            return false
+        };
+        d.goTo = function (f) {
+            if (vars.in_animation || !api.options.slideshow) {
+                return false
+            }
+            var e = d.options.slides.length;
+            if (f < 0) {
+                f = e
+            } else {
+                if (f > e) {
+                    f = 1
+                }
+            }
+            f = e - f + 1;
+            clearInterval(vars.slideshow_interval);
+            if (typeof theme != "undefined" && typeof theme.goTo == "function") {
+                theme.goTo()
+            }
+            if (vars.current_slide == e - f) {
+                if (!(vars.is_paused)) {
+                    vars.slideshow_interval = setInterval(d.nextSlide, d.options.slide_interval)
+                }
+                return false
+            }
+            if (e - f > vars.current_slide) {
+                vars.current_slide = e - f - 1;
+                vars.update_images = "next";
+                d._placeSlide(vars.update_images)
+            } else {
+                if (e - f < vars.current_slide) {
+                    vars.current_slide = e - f + 1;
+                    vars.update_images = "prev";
+                    d._placeSlide(vars.update_images)
+                }
+            }
+            if (d.options.slide_links) {
+                a(vars.slide_list + "> .current-slide").removeClass("current-slide");
+                a(vars.slide_list + "> li").eq((e - f)).addClass("current-slide")
+            }
+            if (d.options.thumb_links) {
+                a(vars.thumb_list + "> .current-thumb").removeClass("current-thumb");
+                a(vars.thumb_list + "> li").eq((e - f)).addClass("current-thumb")
+            }
+        };
+        d._placeSlide = function (e) {
+            var h = d.options.new_window ? ' target="_blank"' : "";
+            loadSlide = false;
+            if (e == "next") {
+                vars.current_slide == d.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1;
+                var g = d.el + " li:eq(" + loadSlide + ")";
+                if (!a(g).html()) {
+                    var h = d.options.new_window ? ' target="_blank"' : "";
+                    imageLink = (d.options.slides[loadSlide].url) ? "href='" + d.options.slides[loadSlide].url + "'" : "";
+                    var f = a('<img src="' + d.options.slides[loadSlide].image + '"/>');
+                    f.appendTo(g).wrap("<a " + imageLink + h + "></a>").parent().parent().addClass("image-loading").css("visibility", "hidden");
+                    f.load(function () {
+                        d._origDim(a(this));
+                        d.resizeNow()
+                    })
+                }
+                d.nextSlide()
+            } else {
+                if (e == "prev") {
+                    vars.current_slide - 1 < 0 ? loadSlide = d.options.slides.length - 1 : loadSlide = vars.current_slide - 1;
+                    var g = d.el + " li:eq(" + loadSlide + ")";
+                    if (!a(g).html()) {
+                        var h = d.options.new_window ? ' target="_blank"' : "";
+                        imageLink = (d.options.slides[loadSlide].url) ? "href='" + d.options.slides[loadSlide].url + "'" : "";
+                        var f = a('<img src="' + d.options.slides[loadSlide].image + '"/>');
+                        f.appendTo(g).wrap("<a " + imageLink + h + "></a>").parent().parent().addClass("image-loading").css("visibility", "hidden");
+                        f.load(function () {
+                            d._origDim(a(this));
+                            d.resizeNow()
+                        })
+                    }
+                    d.prevSlide()
+                }
+            }
+        };
+        d._origDim = function (e) {
+            e.data("origWidth", e.width()).data("origHeight", e.height())
+        };
+        d.afterAnimation = function () {
+            if (d.options.performance == 1) {
+                d.$el.removeClass("speed").addClass("quality")
+            }
+            if (vars.update_images) {
+                vars.current_slide - 1 < 0 ? setPrev = d.options.slides.length - 1 : setPrev = vars.current_slide - 1;
+                vars.update_images = false;
+                a(".prevslide").removeClass("prevslide");
+                a(d.el + " li:eq(" + setPrev + ")").addClass("prevslide")
+            }
+            vars.in_animation = false;
+            if (!vars.is_paused && d.options.slideshow) {
+                vars.slideshow_interval = setInterval(d.nextSlide, d.options.slide_interval);
+                if (d.options.stop_loop && vars.current_slide == d.options.slides.length - 1) {
+                    d.playToggle()
+                }
+            }
+            if (typeof theme != "undefined" && typeof theme.afterAnimation == "function") {
+                theme.afterAnimation()
+            }
+            return false
+        };
+        d.getField = function (e) {
+            return d.options.slides[vars.current_slide][e]
+        };
+        d.init()
+    };
+    a.supersized.vars = {thumb_tray: "#thumb-tray", thumb_list: "#thumb-list", slide_list: "#slide-list", current_slide: 0, in_animation: false, is_paused: false, hover_pause: false, slideshow_interval: false, update_images: false, options: {}};
+    a.supersized.defaultOptions = {slideshow: 1, autoplay: 1, start_slide: 1, stop_loop: 0, random: 0, slide_interval: 5000, transition: 1, transition_speed: 750, new_window: 1, pause_hover: 0, keyboard_nav: 1, performance: 1, image_protect: 1, fit_always: 0, fit_landscape: 0, fit_portrait: 1, min_width: 0, min_height: 0, horizontal_center: 1, vertical_center: 1, slide_links: 1, thumb_links: 1, thumbnail_navigation: 0};
+    a.fn.supersized = function (b) {
+        return this.each(function () {
+            (new a.supersized(b))
+        })
+    }
+})(jQuery);
+
+$(function () {
+    if ($('[data-supersized]').size() > 0) {
+        var slides = [];
+        var attrs = $('[data-supersized]').data('supersized').split(',');
+        for (var i in attrs) slides.push({image: attrs[i]});
+        $.supersized({
+            min_width: 0, min_height: 0, fit_always: 0,
+            transition: 1, slide_links: 'blank', performance: 1,
+            fit_portrait: 1, fit_landscape: 0, slide_interval: 6000,
+            vertical_center: 1, transition_speed: 3000, horizontal_center: 1, slides: slides
+        });
+    }
+});

+ 1 - 0
assets/lib/supersized/supersized.css

@@ -0,0 +1 @@
+*{margin:0;padding:0}body{background:#111;height:100%}img{border:0}#supersized-loader{position:absolute;top:50%;left:50%;z-index:0;width:60px;height:60px;margin:-30px 0 0 -30px;text-indent:-999em;background:url(progress.gif) no-repeat center center}#supersized{display:block;position:fixed;left:0;top:0;overflow:hidden;z-index:-999;height:100%;width:100%}#supersized img{width:auto;height:auto;position:relative;display:none;outline:0;border:0}#supersized.speed img{-ms-interpolation-mode:nearest-neighbor;image-rendering:-moz-crisp-edges}#supersized.quality img{-ms-interpolation-mode:bicubic;image-rendering:optimizeQuality}#supersized li{display:block;list-style:none;z-index:-30;position:fixed;overflow:hidden;top:0;left:0;width:100%;height:100%;background:#111}#supersized a{width:100%;height:100%;display:block}#supersized li.prevslide{z-index:-20}#supersized li.activeslide{z-index:-10}#supersized li.image-loading{background: url(progress.gif) no-repeat center center;width:100%;height:100%}#supersized li.image-loading img{visibility:hidden}#supersized li.prevslide img,#supersized li.activeslide img{display:inline}#supersized img{max-width:none!important}

BIN
assets/lib/ztree/zTreeStyle/img/diy/1_close.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/1_open.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/2.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/3.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/4.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/5.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/6.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/7.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/8.png


BIN
assets/lib/ztree/zTreeStyle/img/diy/9.png


BIN
assets/lib/ztree/zTreeStyle/img/line_conn.gif


BIN
assets/lib/ztree/zTreeStyle/img/loading.gif


BIN
assets/lib/ztree/zTreeStyle/img/zTreeStandard.gif


BIN
assets/lib/ztree/zTreeStyle/img/zTreeStandard.png


+ 97 - 0
assets/lib/ztree/zTreeStyle/zTreeStyle.css

@@ -0,0 +1,97 @@
+/*-------------------------------------
+zTree Style
+
+version:	3.5.19
+author:		Hunter.z
+email:		hunter.z@263.net
+website:	http://code.google.com/p/jquerytree/
+
+-------------------------------------*/
+
+.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif}
+.ztree {margin:0; padding:5px; color:#333}
+.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0}
+.ztree li ul{ margin:0; padding:0 0 0 18px}
+.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;}
+
+.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent;
+	text-decoration:none; vertical-align:top; display: inline-block}
+.ztree li a:hover {text-decoration:underline}
+.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
+.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
+.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid;
+	opacity:0.8; filter:alpha(opacity=80)}
+.ztree li a.tmpTargetNode_prev {}
+.ztree li a.tmpTargetNode_next {}
+.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
+	font-size:12px; border:1px #7EC4CC solid; *border:0px}
+.ztree li span {line-height:16px; margin-right:2px}
+.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
+	border:0 none; cursor: pointer;outline:none;
+	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
+	background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
+
+.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto}
+.ztree li span.button.chk.checkbox_false_full {background-position:0 0}
+.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px}
+.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px}
+.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px}
+.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px}
+.ztree li span.button.chk.checkbox_true_full {background-position:-14px 0}
+.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px}
+.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px}
+.ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px}
+.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px}
+.ztree li span.button.chk.radio_false_full {background-position:-28px 0}
+.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px}
+.ztree li span.button.chk.radio_false_part {background-position:-28px -28px}
+.ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px}
+.ztree li span.button.chk.radio_false_disable {background-position:-28px -56px}
+.ztree li span.button.chk.radio_true_full {background-position:-42px 0}
+.ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px}
+.ztree li span.button.chk.radio_true_part {background-position:-42px -28px}
+.ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px}
+.ztree li span.button.chk.radio_true_disable {background-position:-42px -56px}
+
+.ztree li span.button.switch {width:18px; height:18px}
+.ztree li span.button.root_open{background-position:-92px -54px}
+.ztree li span.button.root_close{background-position:-74px -54px}
+.ztree li span.button.roots_open{background-position:-92px 0}
+.ztree li span.button.roots_close{background-position:-74px 0}
+.ztree li span.button.center_open{background-position:-92px -18px}
+.ztree li span.button.center_close{background-position:-74px -18px}
+.ztree li span.button.bottom_open{background-position:-92px -36px}
+.ztree li span.button.bottom_close{background-position:-74px -36px}
+.ztree li span.button.noline_open{background-position:-92px -72px}
+.ztree li span.button.noline_close{background-position:-74px -72px}
+.ztree li span.button.root_docu{ background:none;}
+.ztree li span.button.roots_docu{background-position:-56px 0}
+.ztree li span.button.center_docu{background-position:-56px -18px}
+.ztree li span.button.bottom_docu{background-position:-56px -36px}
+.ztree li span.button.noline_docu{ background:none;}
+
+.ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle}
+
+.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
+
+ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)}
+
+span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute;
+	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
+	background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
+
+ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)}
+.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute}
+
+/* level style*/
+/*.ztree li span.button.level0 {
+	display:none;
+}
+.ztree li ul.level0 {
+	padding:0;
+	background:none;
+}*/

+ 166 - 0
assets/lib/ztree/ztree.all.min.js

@@ -0,0 +1,166 @@
+
+/*
+ * JQuery zTree core v3.5.37
+ * http://treejs.cn/
+ *
+ * Copyright (c) 2010 Hunter.z
+ *
+ * Licensed same as jquery - MIT License
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * email: hunter.z@263.net
+ * Date: 2018-08-21
+ */
+(function(r){var J,K,L,M,N,O,v,t={},w={},x={},P={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{isParent:"isParent",children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post",
+        dataType:"text",headers:{},xhrFields:{},url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},y=[function(a){var b=a.treeObj,c=g.event;b.bind(c.NODECREATED,
+    function(b,c,i){h.apply(a.callback.onNodeCreated,[b,c,i])});b.bind(c.CLICK,function(b,c,i,e,k){h.apply(a.callback.onClick,[c,i,e,k])});b.bind(c.EXPAND,function(b,c,i){h.apply(a.callback.onExpand,[b,c,i])});b.bind(c.COLLAPSE,function(b,c,i){h.apply(a.callback.onCollapse,[b,c,i])});b.bind(c.ASYNC_SUCCESS,function(b,c,i,e){h.apply(a.callback.onAsyncSuccess,[b,c,i,e])});b.bind(c.ASYNC_ERROR,function(b,c,i,e,k,g){h.apply(a.callback.onAsyncError,[b,c,i,e,k,g])});b.bind(c.REMOVE,function(b,c,i){h.apply(a.callback.onRemove,
+    [b,c,i])});b.bind(c.SELECTED,function(b,c,i){h.apply(a.callback.onSelected,[c,i])});b.bind(c.UNSELECTED,function(b,c,i){h.apply(a.callback.onUnSelected,[c,i])})}],z=[function(a){var b=g.event;a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED)}],A=[function(a){var b=e.getCache(a);b||(b={},e.setCache(a,b));b.nodes=[];b.doms=[]}],B=[function(a,b,c,d,f,i){if(c){var m=
+    e.getRoot(a),k=e.nodeChildren(a,c);c.level=b;c.tId=a.treeId+"_"+ ++m.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?h.eqs(c.open,"true"):!!c.open;b=e.nodeIsParent(a,c);h.isArray(k)&&!(b===!1||typeof b=="string"&&h.eqs(b,"false"))?(e.nodeIsParent(a,c,!0),c.zAsync=!0):(b=e.nodeIsParent(a,c,b),c.open=b&&!a.async.enable?c.open:!1,c.zAsync=!b);c.isFirstNode=f;c.isLastNode=i;c.getParentNode=function(){return e.getNodeCache(a,c.parentTId)};c.getPreNode=function(){return e.getPreNode(a,c)};c.getNextNode=
+    function(){return e.getNextNode(a,c)};c.getIndex=function(){return e.getNodeIndex(a,c)};c.getPath=function(){return e.getNodePath(a,c)};c.isAjaxing=!1;e.fixPIdKeyValue(a,c)}}],u=[function(a){var b=a.target,c=e.getSetting(a.data.treeId),d="",f=null,i="",m="",k=null,j=null,o=null;if(h.eqs(a.type,"mousedown"))m="mousedown";else if(h.eqs(a.type,"mouseup"))m="mouseup";else if(h.eqs(a.type,"contextmenu"))m="contextmenu";else if(h.eqs(a.type,"click"))if(h.eqs(b.tagName,"span")&&b.getAttribute("treeNode"+
+    g.id.SWITCH)!==null)d=h.getNodeMainDom(b).id,i="switchNode";else{if(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}]))d=h.getNodeMainDom(o).id,i="clickNode"}else if(h.eqs(a.type,"dblclick")&&(m="dblclick",o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id,i="switchNode";if(m.length>0&&d.length==0&&(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id;if(d.length>0)switch(f=e.getNodeCache(c,d),i){case "switchNode":e.nodeIsParent(c,
+    f)?h.eqs(a.type,"click")||h.eqs(a.type,"dblclick")&&h.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?k=J:i="":i="";break;case "clickNode":k=K}switch(m){case "mousedown":j=L;break;case "mouseup":j=M;break;case "dblclick":j=N;break;case "contextmenu":j=O}return{stop:!1,node:f,nodeEventType:i,nodeEventCallback:k,treeEventType:m,treeEventCallback:j}}],C=[function(a){var b=e.getRoot(a);b||(b={},e.setRoot(a,b));e.nodeChildren(a,b,[]);b.expandTriggerFlag=!1;b.curSelectedList=[];b.noSelection=
+    !0;b.createdNodes=[];b.zId=0;b._ver=(new Date).getTime()}],D=[],E=[],F=[],G=[],H=[],e={addNodeCache:function(a,b){e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){E.push(a)},addBeforeA:function(a){D.push(a)},addInnerAfterA:function(a){G.push(a)},addInnerBeforeA:function(a){F.push(a)},addInitBind:function(a){y.push(a)},addInitUnBind:function(a){z.push(a)},addInitCache:function(a){A.push(a)},addInitNode:function(a){B.push(a)},
+    addInitProxy:function(a,b){b?u.splice(0,0,a):u.push(a)},addInitRoot:function(a){C.push(a)},addNodesData:function(a,b,c,d){var f=e.nodeChildren(a,b);f?c>=f.length&&(c=-1):(f=e.nodeChildren(a,b,[]),c=-1);if(f.length>0&&c===0)f[0].isFirstNode=!1,j.setNodeLineIcos(a,f[0]);else if(f.length>0&&c<0)f[f.length-1].isLastNode=!1,j.setNodeLineIcos(a,f[f.length-1]);e.nodeIsParent(a,b,!0);c<0?e.nodeChildren(a,b,f.concat(d)):(a=[c,0].concat(d),f.splice.apply(f,a))},addSelectedNode:function(a,b){var c=e.getRoot(a);
+        e.isSelectedNode(a,b)||c.curSelectedList.push(b)},addCreatedNode:function(a,b){(a.callback.onNodeCreated||a.view.addDiyDom)&&e.getRoot(a).createdNodes.push(b)},addZTreeTools:function(a){H.push(a)},exSetting:function(a){r.extend(!0,P,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=E.length;d<e;d++)E[d].apply(this,arguments)},getBeforeA:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     b,c){for(var d=0,e=D.length;d<e;d++)D[d].apply(this,arguments)},getInnerAfterA:function(a,b,c){for(var d=0,e=G.length;d<e;d++)G[d].apply(this,arguments)},getInnerBeforeA:function(a,b,c){for(var d=0,e=F.length;d<e;d++)F[d].apply(this,arguments)},getCache:function(a){return x[a.treeId]},getNodeIndex:function(a,b){if(!b)return null;for(var c=b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length-1;d<=f;d++)if(c[d]===b)return d;return-1},getNextNode:function(a,b){if(!b)return null;
+        for(var c=b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length-1;d<=f;d++)if(c[d]===b)return d==f?null:c[d+1];return null},getNodeByParam:function(a,b,c,d){if(!b||!c)return null;for(var f=0,i=b.length;f<i;f++){var m=b[f];if(m[c]==d)return b[f];m=e.nodeChildren(a,m);if(m=e.getNodeByParam(a,m,c,d))return m}return null},getNodeCache:function(a,b){if(!b)return null;var c=x[a.treeId].nodes[e.getNodeCacheId(b)];return c?c:null},getNodePath:function(a,b){if(!b)return null;var c;
+        (c=b.parentTId?b.getParentNode().getPath():[])&&c.push(b);return c},getNodes:function(a){return e.nodeChildren(a,e.getRoot(a))},getNodesByParam:function(a,b,c,d){if(!b||!c)return[];for(var f=[],i=0,m=b.length;i<m;i++){var k=b[i];k[c]==d&&f.push(k);k=e.nodeChildren(a,k);f=f.concat(e.getNodesByParam(a,k,c,d))}return f},getNodesByParamFuzzy:function(a,b,c,d){if(!b||!c)return[];for(var f=[],d=d.toLowerCase(),i=0,m=b.length;i<m;i++){var k=b[i];typeof k[c]=="string"&&b[i][c].toLowerCase().indexOf(d)>-1&&
+    f.push(k);k=e.nodeChildren(a,k);f=f.concat(e.getNodesByParamFuzzy(a,k,c,d))}return f},getNodesByFilter:function(a,b,c,d,f){if(!b)return d?null:[];for(var i=d?null:[],m=0,k=b.length;m<k;m++){var g=b[m];if(h.apply(c,[g,f],!1)){if(d)return g;i.push(g)}g=e.nodeChildren(a,g);g=e.getNodesByFilter(a,g,c,d,f);if(d&&g)return g;i=d?g:i.concat(g)}return i},getPreNode:function(a,b){if(!b)return null;for(var c=b.parentTId?b.getParentNode():e.getRoot(a),c=e.nodeChildren(a,c),d=0,f=c.length;d<f;d++)if(c[d]===b)return d==
+    0?null:c[d-1];return null},getRoot:function(a){return a?w[a.treeId]:null},getRoots:function(){return w},getSetting:function(a){return t[a]},getSettings:function(){return t},getZTreeTools:function(a){return(a=this.getRoot(this.getSetting(a)))?a.treeTools:null},initCache:function(a){for(var b=0,c=A.length;b<c;b++)A[b].apply(this,arguments)},initNode:function(a,b,c,d,e,i){for(var m=0,g=B.length;m<g;m++)B[m].apply(this,arguments)},initRoot:function(a){for(var b=0,c=C.length;b<c;b++)C[b].apply(this,arguments)},
+    isSelectedNode:function(a,b){for(var c=e.getRoot(a),d=0,f=c.curSelectedList.length;d<f;d++)if(b===c.curSelectedList[d])return!0;return!1},nodeChildren:function(a,b,c){if(!b)return null;a=a.data.key.children;typeof c!=="undefined"&&(b[a]=c);return b[a]},nodeIsParent:function(a,b,c){if(!b)return!1;a=a.data.key.isParent;typeof c!=="undefined"&&(typeof c==="string"&&(c=h.eqs(c,"true")),b[a]=!!c);return b[a]},nodeName:function(a,b,c){a=a.data.key.name;typeof c!=="undefined"&&(b[a]=c);return""+b[a]},nodeTitle:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          b){return""+b[a.data.key.title===""?a.data.key.name:a.data.key.title]},removeNodeCache:function(a,b){var c=e.nodeChildren(a,b);if(c)for(var d=0,f=c.length;d<f;d++)e.removeNodeCache(a,c[d]);e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=null},removeSelectedNode:function(a,b){for(var c=e.getRoot(a),d=0,f=c.curSelectedList.length;d<f;d++)if(b===c.curSelectedList[d]||!e.getNodeCache(a,c.curSelectedList[d].tId))c.curSelectedList.splice(d,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,b]),d--,f--},setCache:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              b){x[a.treeId]=b},setRoot:function(a,b){w[a.treeId]=b},setZTreeTools:function(a,b){for(var c=0,d=H.length;c<d;c++)H[c].apply(this,arguments)},transformToArrayFormat:function(a,b){function c(b){d.push(b);(b=e.nodeChildren(a,b))&&(d=d.concat(e.transformToArrayFormat(a,b)))}if(!b)return[];var d=[];if(h.isArray(b))for(var f=0,i=b.length;f<i;f++)c(b[f]);else c(b);return d},transformTozTreeFormat:function(a,b){var c,d,f=a.data.simpleData.idKey,i=a.data.simpleData.pIdKey;if(!f||f==""||!b)return[];if(h.isArray(b)){var g=
+        [],k={};for(c=0,d=b.length;c<d;c++)k[b[c][f]]=b[c];for(c=0,d=b.length;c<d;c++){var j=k[b[c][i]];if(j&&b[c][f]!=b[c][i]){var o=e.nodeChildren(a,j);o||(o=e.nodeChildren(a,j,[]));o.push(b[c])}else g.push(b[c])}return g}else return[b]}},n={bindEvent:function(a){for(var b=0,c=y.length;b<c;b++)y[b].apply(this,arguments)},unbindEvent:function(a){for(var b=0,c=z.length;b<c;b++)z[b].apply(this,arguments)},bindTree:function(a){var b={treeId:a.treeId},c=a.treeObj;a.view.txtSelectedEnable||c.bind("selectstart",
+        v).css({"-moz-user-select":"-moz-none"});c.bind("click",b,n.proxy);c.bind("dblclick",b,n.proxy);c.bind("mouseover",b,n.proxy);c.bind("mouseout",b,n.proxy);c.bind("mousedown",b,n.proxy);c.bind("mouseup",b,n.proxy);c.bind("contextmenu",b,n.proxy)},unbindTree:function(a){a.treeObj.unbind("selectstart",v).unbind("click",n.proxy).unbind("dblclick",n.proxy).unbind("mouseover",n.proxy).unbind("mouseout",n.proxy).unbind("mousedown",n.proxy).unbind("mouseup",n.proxy).unbind("contextmenu",n.proxy)},doProxy:function(a){for(var b=
+        [],c=0,d=u.length;c<d;c++){var e=u[c].apply(this,arguments);b.push(e);if(e.stop)break}return b},proxy:function(a){var b=e.getSetting(a.data.treeId);if(!h.uCanDo(b,a))return!0;for(var b=n.doProxy(a),c=!0,d=0,f=b.length;d<f;d++){var i=b[d];i.nodeEventCallback&&(c=i.nodeEventCallback.apply(i,[a,i.node])&&c);i.treeEventCallback&&(c=i.treeEventCallback.apply(i,[a,i.node])&&c)}return c}};J=function(a,b){var c=e.getSetting(a.data.treeId);if(b.open){if(h.apply(c.callback.beforeCollapse,[c.treeId,b],!0)==
+    !1)return!0}else if(h.apply(c.callback.beforeExpand,[c.treeId,b],!0)==!1)return!0;e.getRoot(c).expandTriggerFlag=!0;j.switchNode(c,b);return!0};K=function(a,b){var c=e.getSetting(a.data.treeId),d=c.view.autoCancelSelected&&(a.ctrlKey||a.metaKey)&&e.isSelectedNode(c,b)?0:c.view.autoCancelSelected&&(a.ctrlKey||a.metaKey)&&c.view.selectedMulti?2:1;if(h.apply(c.callback.beforeClick,[c.treeId,b,d],!0)==!1)return!0;d===0?j.cancelPreSelectedNode(c,b):j.selectNode(c,b,d===2);c.treeObj.trigger(g.event.CLICK,
+    [a,c.treeId,b,d]);return!0};L=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeMouseDown,[c.treeId,b],!0)&&h.apply(c.callback.onMouseDown,[a,c.treeId,b]);return!0};M=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeMouseUp,[c.treeId,b],!0)&&h.apply(c.callback.onMouseUp,[a,c.treeId,b]);return!0};N=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeDblClick,[c.treeId,b],!0)&&h.apply(c.callback.onDblClick,[a,c.treeId,b]);return!0};
+    O=function(a,b){var c=e.getSetting(a.data.treeId);h.apply(c.callback.beforeRightClick,[c.treeId,b],!0)&&h.apply(c.callback.onRightClick,[a,c.treeId,b]);return typeof c.callback.onRightClick!="function"};v=function(a){a=a.originalEvent.srcElement.nodeName.toLowerCase();return a==="input"||a==="textarea"};var h={apply:function(a,b,c){return typeof a=="function"?a.apply(Q,b?b:[]):c},canAsync:function(a,b){var c=e.nodeChildren(a,b),d=e.nodeIsParent(a,b);return a.async.enable&&b&&d&&!(b.zAsync||c&&c.length>
+            0)},clone:function(a){if(a===null)return null;var b=h.isArray(a)?[]:{},c;for(c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):typeof a[c]==="object"?h.clone(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return Object.prototype.toString.apply(a)==="[object Array]"},isElement:function(a){return typeof HTMLElement==="object"?a instanceof HTMLElement:a&&typeof a==="object"&&a!==null&&a.nodeType===1&&typeof a.nodeName==="string"},$:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   b,c){b&&typeof b!="string"&&(c=b,b="");return typeof a=="string"?r(a,c?c.treeObj.get(0).ownerDocument:null):r("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d<e;d++)if(h.eqs(b.tagName,c[d].tagName)&&b.getAttribute(c[d].attrName)!==null)return b;b=b.parentNode}return null},getNodeMainDom:function(a){return r(a).parent("li").get(0)||r(a).parentsUntil("li").parent().get(0)},isChildOrSelf:function(a,b){return r(a).closest("#"+
+            b).length>0},uCanDo:function(){return!0}},j={addNodes:function(a,b,c,d,f){var i=e.nodeIsParent(a,b);if(!a.data.keep.leaf||!b||i)if(h.isArray(d)||(d=[d]),a.data.simpleData.enable&&(d=e.transformTozTreeFormat(a,d)),b){var i=l(b,g.id.SWITCH,a),m=l(b,g.id.ICON,a),k=l(b,g.id.UL,a);if(!b.open)j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,m,g.folder.CLOSE),b.open=!1,k.css({display:"none"});e.addNodesData(a,b,c,d);j.createNodes(a,b.level+1,d,b,c);f||j.expandCollapseParentNode(a,b,!0)}else e.addNodesData(a,
+            e.getRoot(a),c,d),j.createNodes(a,0,d,null,c)},appendNodes:function(a,b,c,d,f,i,g){if(!c)return[];var k=[],h=d?d:e.getRoot(a),h=e.nodeChildren(a,h),o,l;if(!h||f>=h.length-c.length)f=-1;for(var s=0,n=c.length;s<n;s++){var p=c[s];i&&(o=(f===0||h.length==c.length)&&s==0,l=f<0&&s==c.length-1,e.initNode(a,b,p,d,o,l,g),e.addNodeCache(a,p));o=e.nodeIsParent(a,p);l=[];var I=e.nodeChildren(a,p);I&&I.length>0&&(l=j.appendNodes(a,b+1,I,p,-1,i,g&&p.open));g&&(j.makeDOMNodeMainBefore(k,a,p),j.makeDOMNodeLine(k,
+            a,p),e.getBeforeA(a,p,k),j.makeDOMNodeNameBefore(k,a,p),e.getInnerBeforeA(a,p,k),j.makeDOMNodeIcon(k,a,p),e.getInnerAfterA(a,p,k),j.makeDOMNodeNameAfter(k,a,p),e.getAfterA(a,p,k),o&&p.open&&j.makeUlHtml(a,p,k,l.join("")),j.makeDOMNodeMainAfter(k,a,p),e.addCreatedNode(a,p))}return k},appendParentULDom:function(a,b){var c=[],d=l(b,a);!d.get(0)&&b.parentTId&&(j.appendParentULDom(a,b.getParentNode()),d=l(b,a));var f=l(b,g.id.UL,a);f.get(0)&&f.remove();f=e.nodeChildren(a,b);f=j.appendNodes(a,b.level+1,
+            f,b,-1,!1,!0);j.makeUlHtml(a,b,c,f.join(""));d.append(c.join(""))},asyncNode:function(a,b,c,d){var f,i;f=e.nodeIsParent(a,b);if(b&&!f)return h.apply(d),!1;else if(b&&b.isAjaxing)return!1;else if(h.apply(a.callback.beforeAsync,[a.treeId,b],!0)==!1)return h.apply(d),!1;if(b)b.isAjaxing=!0,l(b,g.id.ICON,a).attr({style:"","class":g.className.BUTTON+" "+g.className.ICO_LOADING});var m={},k=h.apply(a.async.autoParam,[a.treeId,b],a.async.autoParam);for(f=0,i=k.length;b&&f<i;f++){var q=k[f].split("="),o=
+            q;q.length>1&&(o=q[1],q=q[0]);m[o]=b[q]}k=h.apply(a.async.otherParam,[a.treeId,b],a.async.otherParam);if(h.isArray(k))for(f=0,i=k.length;f<i;f+=2)m[k[f]]=k[f+1];else for(var n in k)m[n]=k[n];var s=e.getRoot(a)._ver;r.ajax({contentType:a.async.contentType,cache:!1,type:a.async.type,url:h.apply(a.async.url,[a.treeId,b],a.async.url),data:a.async.contentType.indexOf("application/json")>-1?JSON.stringify(m):m,dataType:a.async.dataType,headers:a.async.headers,xhrFields:a.async.xhrFields,success:function(i){if(s==
+                e.getRoot(a)._ver){var f=[];try{f=!i||i.length==0?[]:typeof i=="string"?eval("("+i+")"):i}catch(k){f=i}if(b)b.isAjaxing=null,b.zAsync=!0;j.setNodeLineIcos(a,b);f&&f!==""?(f=h.apply(a.async.dataFilter,[a.treeId,b,f],f),j.addNodes(a,b,-1,f?h.clone(f):[],!!c)):j.addNodes(a,b,-1,[],!!c);a.treeObj.trigger(g.event.ASYNC_SUCCESS,[a.treeId,b,i]);h.apply(d)}},error:function(c,d,i){if(s==e.getRoot(a)._ver){if(b)b.isAjaxing=null;j.setNodeLineIcos(a,b);a.treeObj.trigger(g.event.ASYNC_ERROR,[a.treeId,b,c,d,i])}}});
+            return!0},cancelPreSelectedNode:function(a,b,c){var d=e.getRoot(a).curSelectedList,f,i;for(f=d.length-1;f>=0;f--)if(i=d[f],b===i||!b&&(!c||c!==i))if(l(i,g.id.A,a).removeClass(g.node.CURSELECTED),b){e.removeSelectedNode(a,b);break}else d.splice(f,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,i])},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=e.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();h.apply(a.view.addDiyDom,[a.treeId,c]);a.callback.onNodeCreated&&
+        a.treeObj.trigger(g.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d,f){if(c&&c.length!=0){var i=e.getRoot(a),m=!d||d.open||!!l(e.nodeChildren(a,d)[0],a).get(0);i.createdNodes=[];var b=j.appendNodes(a,b,c,d,f,!0,m),k,h;d?(d=l(d,g.id.UL,a),d.get(0)&&(k=d)):k=a.treeObj;k&&(f>=0&&(h=k.children()[f]),f>=0&&h?r(h).before(b.join("")):k.append(b.join("")));j.createNodeCallback(a)}},destroy:function(a){a&&(e.initCache(a),e.initRoot(a),n.unbindTree(a),n.unbindEvent(a),a.treeObj.empty(),delete t[a.treeId])},
+        expandCollapseNode:function(a,b,c,d,f){var i=e.getRoot(a),m;if(b){var k=e.nodeChildren(a,b),q=e.nodeIsParent(a,b);if(i.expandTriggerFlag)m=f,f=function(){m&&m();b.open?a.treeObj.trigger(g.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(g.event.COLLAPSE,[a.treeId,b])},i.expandTriggerFlag=!1;if(!b.open&&q&&(!l(b,g.id.UL,a).get(0)||k&&k.length>0&&!l(k[0],a).get(0)))j.appendParentULDom(a,b),j.createNodeCallback(a);if(b.open==c)h.apply(f,[]);else{var c=l(b,g.id.UL,a),i=l(b,g.id.SWITCH,a),o=l(b,g.id.ICON,
+            a);q?(b.open=!b.open,b.iconOpen&&b.iconClose&&o.attr("style",j.makeNodeIcoStyle(a,b)),b.open?(j.replaceSwitchClass(b,i,g.folder.OPEN),j.replaceIcoClass(b,o,g.folder.OPEN),d==!1||a.view.expandSpeed==""?(c.show(),h.apply(f,[])):k&&k.length>0?c.slideDown(a.view.expandSpeed,f):(c.show(),h.apply(f,[]))):(j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,o,g.folder.CLOSE),d==!1||a.view.expandSpeed==""||!(k&&k.length>0)?(c.hide(),h.apply(f,[])):c.slideUp(a.view.expandSpeed,f))):h.apply(f,[])}}else h.apply(f,
+            [])},expandCollapseParentNode:function(a,b,c,d,e){b&&(b.parentTId?(j.expandCollapseNode(a,b,c,d),b.parentTId&&j.expandCollapseParentNode(a,b.getParentNode(),c,d,e)):j.expandCollapseNode(a,b,c,d,e))},expandCollapseSonNode:function(a,b,c,d,f){var i=e.getRoot(a),i=b?e.nodeChildren(a,b):e.nodeChildren(a,i),g=b?!1:d,k=e.getRoot(a).expandTriggerFlag;e.getRoot(a).expandTriggerFlag=!1;if(i)for(var h=0,l=i.length;h<l;h++)i[h]&&j.expandCollapseSonNode(a,i[h],c,g);e.getRoot(a).expandTriggerFlag=k;j.expandCollapseNode(a,
+            b,c,d,f)},isSelectedNode:function(a,b){if(!b)return!1;var c=e.getRoot(a).curSelectedList,d;for(d=c.length-1;d>=0;d--)if(b===c[d])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=e.nodeName(b,c),d=b.view.nameIsHTML?d:d.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");a.push("<span id='",c.tId,g.id.ICON,"' title='' treeNode",g.id.ICON," class='",j.makeNodeIcoClass(b,c),"' style='",j.makeNodeIcoStyle(b,c),"'></span><span id='",c.tId,g.id.SPAN,"' class='",g.className.NAME,"'>",
+            d,"</span>")},makeDOMNodeLine:function(a,b,c){a.push("<span id='",c.tId,g.id.SWITCH,"' title='' class='",j.makeNodeLineClass(b,c),"' treeNode",g.id.SWITCH,"></span>")},makeDOMNodeMainAfter:function(a){a.push("</li>")},makeDOMNodeMainBefore:function(a,b,c){a.push("<li id='",c.tId,"' class='",g.className.LEVEL,c.level,"' tabindex='0' hidefocus='true' treenode>")},makeDOMNodeNameAfter:function(a){a.push("</a>")},makeDOMNodeNameBefore:function(a,b,c){var d=e.nodeTitle(b,c),f=j.makeNodeUrl(b,c),i=j.makeNodeFontCss(b,
+            c),m=[],k;for(k in i)m.push(k,":",i[k],";");a.push("<a id='",c.tId,g.id.A,"' class='",g.className.LEVEL,c.level,"' treeNode",g.id.A,' onclick="',c.click||"",'" ',f!=null&&f.length>0?"href='"+f+"'":""," target='",j.makeNodeTarget(c),"' style='",m.join(""),"'");h.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),"'");a.push(">")},makeNodeFontCss:function(a,b){var c=h.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss);
+            return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];if(!b.isAjaxing){var d=e.nodeIsParent(a,b);c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0];d?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU)}return g.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=e.nodeIsParent(a,b)&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b[a.data.key.icon];d&&c.push("background:url(",d,") 0 0 no-repeat;");(a.view.showIcon==
+            !1||!h.apply(a.view.showIcon,[a.treeId,b],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];a.view.showLine?b.level==0&&b.isFirstNode&&b.isLastNode?c.push(g.line.ROOT):b.level==0&&b.isFirstNode?c.push(g.line.ROOTS):b.isLastNode?c.push(g.line.BOTTOM):c.push(g.line.CENTER):c.push(g.line.NOLINE);e.nodeIsParent(a,b)?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU);return j.makeNodeLineClassEx(b)+c.join("_")},makeNodeLineClassEx:function(a){return g.className.BUTTON+
+            " "+g.className.LEVEL+a.level+" "+g.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("<ul id='",b.tId,g.id.UL,"' class='",g.className.LEVEL,b.level," ",j.makeUlLineClass(a,b),"' style='display:",b.open?"block":"none","'>");c.push(d);c.push("</ul>")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode?g.line.LINE:""},removeChildNodes:function(a,b){if(b){var c=
+            e.nodeChildren(a,b);if(c){for(var d=0,f=c.length;d<f;d++)e.removeNodeCache(a,c[d]);e.removeSelectedNode(a);delete b[a.data.key.children];a.data.keep.parent?l(b,g.id.UL,a).empty():(e.nodeIsParent(a,b,!1),b.open=!1,c=l(b,g.id.SWITCH,a),d=l(b,g.id.ICON,a),j.replaceSwitchClass(b,c,g.folder.DOCU),j.replaceIcoClass(b,d,g.folder.DOCU),l(b,g.id.UL,a).remove())}}},scrollIntoView:function(a,b){if(b)if(typeof Element==="undefined"){var c=a.treeObj.get(0).getBoundingClientRect(),d=b.getBoundingClientRect();(d.top<
+            c.top||d.bottom>c.bottom||d.right>c.right||d.left<c.left)&&b.scrollIntoView()}else{if(!Element.prototype.scrollIntoViewIfNeeded)Element.prototype.scrollIntoViewIfNeeded=function(a){function b(a,c){return{start:a,length:c,end:a+c}}function c(b,d){return!1===a||d.start<b.end&&b.start<d.end?Math.max(b.end-d.length,Math.min(d.start,b.start)):(b.start+b.end-d.length)/2}function d(a,b){return{x:a,y:b,translate:function(c,i){return d(a+c,b+i)}}}function e(a,b){for(;a;)b=b.translate(a.offsetLeft,a.offsetTop),
+            a=a.offsetParent;return b}for(var g=e(this,d(0,0)),j=d(this.offsetWidth,this.offsetHeight),h=this.parentNode,l;h instanceof HTMLElement;)l=e(h,d(h.clientLeft,h.clientTop)),h.scrollLeft=c(b(g.x-l.x,j.x),b(h.scrollLeft,h.clientWidth)),h.scrollTop=c(b(g.y-l.y,j.y),b(h.scrollTop,h.clientHeight)),g=g.translate(-h.scrollLeft,-h.scrollTop),h=h.parentNode};b.scrollIntoViewIfNeeded()}},setFirstNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[0].isFirstNode=!0},setLastNode:function(a,b){var c=e.nodeChildren(a,
+            b);if(c.length>0)c[c.length-1].isLastNode=!0},removeNode:function(a,b){var c=e.getRoot(a),d=b.parentTId?b.getParentNode():c;b.isFirstNode=!1;b.isLastNode=!1;b.getPreNode=function(){return null};b.getNextNode=function(){return null};if(e.getNodeCache(a,b.tId)){l(b,a).remove();e.removeNodeCache(a,b);e.removeSelectedNode(a,b);for(var f=e.nodeChildren(a,d),i=0,h=f.length;i<h;i++)if(f[i].tId==b.tId){f.splice(i,1);break}j.setFirstNode(a,d);j.setLastNode(a,d);var k,i=f.length;if(!a.data.keep.parent&&i==
+            0)e.nodeIsParent(a,d,!1),d.open=!1,delete d[a.data.key.children],i=l(d,g.id.UL,a),h=l(d,g.id.SWITCH,a),k=l(d,g.id.ICON,a),j.replaceSwitchClass(d,h,g.folder.DOCU),j.replaceIcoClass(d,k,g.folder.DOCU),i.css("display","none");else if(a.view.showLine&&i>0){var q=f[i-1],i=l(q,g.id.UL,a),h=l(q,g.id.SWITCH,a);k=l(q,g.id.ICON,a);d==c?f.length==1?j.replaceSwitchClass(q,h,g.line.ROOT):(c=l(f[0],g.id.SWITCH,a),j.replaceSwitchClass(f[0],c,g.line.ROOTS),j.replaceSwitchClass(q,h,g.line.BOTTOM)):j.replaceSwitchClass(q,
+            h,g.line.BOTTOM);i.removeClass(g.line.LINE)}}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing&&(a=b.attr("class"),a!=void 0)){a=a.split("_");switch(c){case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:a[a.length-1]=c}b.attr("class",a.join("_"))}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(d!=void 0){d=d.split("_");switch(c){case g.line.ROOT:case g.line.ROOTS:case g.line.CENTER:case g.line.BOTTOM:case g.line.NOLINE:d[0]=j.makeNodeLineClassEx(a)+c;break;case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:d[1]=
+            c}b.attr("class",d.join("_"));c!==g.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||j.cancelPreSelectedNode(a,null,b);l(b,g.id.A,a).addClass(g.node.CURSELECTED);e.addSelectedNode(a,b);a.treeObj.trigger(g.event.SELECTED,[a.treeId,b])},setNodeFontCss:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=l(b,g.id.SWITCH,a),d=l(b,g.id.UL,a),f=l(b,g.id.ICON,a),i=j.makeUlLineClass(a,b);i.length==
+        0?d.removeClass(g.line.LINE):d.addClass(i);c.attr("class",j.makeNodeLineClass(a,b));e.nodeIsParent(a,b)?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",j.makeNodeIcoStyle(a,b));f.attr("class",j.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=e.nodeTitle(a,b),d=l(b,g.id.SPAN,a);d.empty();a.view.nameIsHTML?d.html(e.nodeName(a,b)):d.text(e.nodeName(a,b));h.apply(a.view.showTitle,[a.treeId,b],a.view.showTitle)&&l(b,g.id.A,a).attr("title",!c?"":c)},
+        setNodeTarget:function(a,b){l(b,g.id.A,a).attr("target",j.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeUrl(a,b);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){b.open||!h.canAsync(a,b)?j.expandCollapseNode(a,b,!b.open):a.async.enable?j.asyncNode(a,b)||j.expandCollapseNode(a,b,!b.open):b&&j.expandCollapseNode(a,b,!b.open)}};r.fn.zTree={consts:{className:{BUTTON:"button",LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"},
+            event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open",CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:h,
+            view:j,event:n,data:e},getZTreeObj:function(a){return(a=e.getZTreeTools(a))?a:null},destroy:function(a){if(a&&a.length>0)j.destroy(e.getSetting(a));else for(var b in t)j.destroy(t[b])},init:function(a,b,c){var d=h.clone(P);r.extend(!0,d,b);d.treeId=a.attr("id");d.treeObj=a;d.treeObj.empty();t[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";e.initRoot(d);a=e.getRoot(d);c=c?h.clone(h.isArray(c)?c:[c]):[];d.data.simpleData.enable?e.nodeChildren(d,a,e.transformTozTreeFormat(d,
+            c)):e.nodeChildren(d,a,c);e.initCache(d);n.unbindTree(d);n.bindTree(d);n.unbindEvent(d);n.bindEvent(d);var f={setting:d,addNodes:function(a,b,c,f){function g(){j.addNodes(d,a,b,n,f==!0)}a||(a=null);var l=e.nodeIsParent(d,a);if(a&&!l&&d.data.keep.leaf)return null;l=parseInt(b,10);isNaN(l)?(f=!!c,c=b,b=-1):b=l;if(!c)return null;var n=h.clone(h.isArray(c)?c:[c]);h.canAsync(d,a)?j.asyncNode(d,a,f,g):g();return n},cancelSelectedNode:function(a){j.cancelPreSelectedNode(d,a)},destroy:function(){j.destroy(d)},
+            expandAll:function(a){a=!!a;j.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,g){function n(){var b=l(a,d).get(0);b&&f!==!1&&j.scrollIntoView(d,b)}if(!a||!e.nodeIsParent(d,a))return null;b!==!0&&b!==!1&&(b=!a.open);if((g=!!g)&&b&&h.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(g&&!b&&h.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&j.expandCollapseParentNode(d,a.getParentNode(),b,!1);if(b===a.open&&!c)return null;
+                e.getRoot(d).expandTriggerFlag=g;!h.canAsync(d,a)&&c?j.expandCollapseSonNode(d,a,b,!0,n):(a.open=!b,j.switchNode(this.setting,a),n());return b},getNodes:function(){return e.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:e.getNodeByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodeByTId:function(a){return e.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:e.getNodesByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByParamFuzzy:function(a,b,c){return!a?null:
+                e.getNodesByParamFuzzy(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:e.getNodesByFilter(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=a.parentTId?a.getParentNode():e.getRoot(d),b=e.nodeChildren(d,b),c=0,f=b.length;c<f;c++)if(b[c]==a)return c;return-1},getSelectedNodes:function(){for(var a=[],b=e.getRoot(d).curSelectedList,c=0,f=b.length;c<f;c++)a.push(b[c]);return a},
+            isSelectedNode:function(a){return e.isSelectedNode(d,a)},reAsyncChildNodesPromise:function(a,b,c){return new Promise(function(d,e){try{f.reAsyncChildNodes(a,b,c,function(){d(a)})}catch(g){e(g)}})},reAsyncChildNodes:function(a,b,c,f){if(this.setting.async.enable){var h=!a;h&&(a=e.getRoot(d));if(b=="refresh"){for(var b=e.nodeChildren(d,a),n=0,r=b?b.length:0;n<r;n++)e.removeNodeCache(d,b[n]);e.removeSelectedNode(d);e.nodeChildren(d,a,[]);h?this.setting.treeObj.empty():l(a,g.id.UL,d).empty()}j.asyncNode(this.setting,
+                h?null:a,!!c,f)}},refresh:function(){this.setting.treeObj.empty();var a=e.getRoot(d),b=e.nodeChildren(d,a);e.initRoot(d);e.nodeChildren(d,a,b);e.initCache(d);j.createNodes(d,0,e.nodeChildren(d,a),null,-1)},removeChildNodes:function(a){if(!a)return null;var b=e.nodeChildren(d,a);j.removeChildNodes(d,a);return b?b:null},removeNode:function(a,b){a&&(b=!!b,b&&h.apply(d.callback.beforeRemove,[d.treeId,a],!0)==!1||(j.removeNode(d,a),b&&this.setting.treeObj.trigger(g.event.REMOVE,[d.treeId,a])))},selectNode:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   b,c){function e(){if(!c){var b=l(a,d).get(0);j.scrollIntoView(d,b)}}if(a&&h.uCanDo(d)){b=d.view.selectedMulti&&b;if(a.parentTId)j.expandCollapseParentNode(d,a.getParentNode(),!0,!1,e);else if(!c)try{l(a,d).focus().blur()}catch(f){}j.selectNode(d,a,b)}},transformTozTreeNodes:function(a){return e.transformTozTreeFormat(d,a)},transformToArray:function(a){return e.transformToArrayFormat(d,a)},updateNode:function(a){a&&l(a,d).get(0)&&h.uCanDo(d)&&(j.setNodeName(d,a),j.setNodeTarget(d,a),j.setNodeUrl(d,
+                a),j.setNodeLineIcos(d,a),j.setNodeFontCss(d,a))}};a.treeTools=f;e.setZTreeTools(d,f);(c=e.nodeChildren(d,a))&&c.length>0?j.createNodes(d,0,c,null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&j.asyncNode(d);return f}};var Q=r.fn.zTree,l=h.$,g=Q.consts})(jQuery);
+
+/*
+ * JQuery zTree excheck v3.5.37
+ * http://treejs.cn/
+ *
+ * Copyright (c) 2010 Hunter.z
+ *
+ * Licensed same as jquery - MIT License
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * email: hunter.z@263.net
+ * Date: 2018-08-21
+ */
+(function(n){var q,r,s,p={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},w={check:{enable:!1,autoCheckTrigger:!1,chkStyle:p.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:p.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};q=function(c,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       a){if(a.chkDisabled===!0)return!1;var b=e.getSetting(c.data.treeId);if(i.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;var d=e.nodeChecked(b,a);e.nodeChecked(b,a,!d);f.checkNodeRelation(b,a);d=m(a,h.id.CHECK,b);f.setChkClass(b,d,a);f.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(h.event.CHECK,[c,b.treeId,a]);return!0};r=function(c,a){if(a.chkDisabled===!0)return!1;var b=e.getSetting(c.data.treeId),d=m(a,h.id.CHECK,b);a.check_Focus=!0;f.setChkClass(b,d,a);return!0};s=function(c,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          a){if(a.chkDisabled===!0)return!1;var b=e.getSetting(c.data.treeId),d=m(a,h.id.CHECK,b);a.check_Focus=!1;f.setChkClass(b,d,a);return!0};n.extend(!0,n.fn.zTree.consts,p);n.extend(!0,n.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,j;d=h.radio;b=e.nodeChecked(c,a);if(c.check.chkStyle==d.STYLE){var g=e.getRadioCheckedList(c);if(b)if(c.check.radioType==d.TYPE_ALL){for(d=g.length-1;d>=0;d--){b=g[d];var k=e.nodeChecked(c,b);k&&b!=a&&(e.nodeChecked(c,b,!1),g.splice(d,1),f.setChkClass(c,
+            m(b,h.id.CHECK,c),b),b.parentTId!=a.parentTId&&f.repairParentChkClassWithSelf(c,b))}g.push(a)}else{g=a.parentTId?a.getParentNode():e.getRoot(c);g=e.nodeChildren(c,g);for(d=0,j=g.length;d<j;d++)if(b=g[d],(k=e.nodeChecked(c,b))&&b!=a)e.nodeChecked(c,b,!1),f.setChkClass(c,m(b,h.id.CHECK,c),b)}else if(c.check.radioType==d.TYPE_ALL)for(d=0,j=g.length;d<j;d++)if(a==g[d]){g.splice(d,1);break}}else g=e.nodeChildren(c,a),b&&(!g||g.length==0||c.check.chkboxType.Y.indexOf("s")>-1)&&f.setSonNodeCheckBox(c,a,
+            !0),!b&&(!g||g.length==0||c.check.chkboxType.N.indexOf("s")>-1)&&f.setSonNodeCheckBox(c,a,!1),b&&c.check.chkboxType.Y.indexOf("p")>-1&&f.setParentNodeCheckBox(c,a,!0),!b&&c.check.chkboxType.N.indexOf("p")>-1&&f.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=h.checkbox,d=h.radio,j="",g=e.nodeChecked(c,a),j=a.chkDisabled===!0?b.DISABLED:a.halfCheck?b.PART:c.check.chkStyle==d.STYLE?a.check_Child_State<1?b.FULL:b.PART:g?a.check_Child_State===2||a.check_Child_State===-1?b.FULL:b.PART:
+            a.check_Child_State<1?b.FULL:b.PART,d=c.check.chkStyle+"_"+(g?b.TRUE:b.FALSE)+"_"+j,d=a.check_Focus&&a.chkDisabled!==!0?d+"_"+b.FOCUS:d;return h.className.BUTTON+" "+b.DEFAULT+" "+d},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===h.checkbox.STYLE)for(var b=e.getRoot(c),b=e.nodeChildren(c,b),d=0,j=b.length;d<j;d++){var g=b[d];g.nocheck!==!0&&g.chkDisabled!==!0&&e.nodeChecked(c,g,a);f.setSonNodeCheckBox(c,g,a)}},repairChkClass:function(c,a){if(a&&(e.makeChkFlag(c,a),a.nocheck!==!0)){var b=
+            m(a,h.id.CHECK,c);f.setChkClass(c,b,a)}},repairParentChkClass:function(c,a){if(a&&a.parentTId){var b=a.getParentNode();f.repairChkClass(c,b);f.repairParentChkClass(c,b)}},repairParentChkClassWithSelf:function(c,a){if(a){var b=e.nodeChildren(c,a);b&&b.length>0?f.repairParentChkClass(c,b[0]):f.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b)a.chkDisabled=b;f.repairChkClass(c,a);if((a=e.nodeChildren(c,a))&&d)for(var j=0,g=a.length;j<g;j++)f.repairSonChkDisabled(c,
+            a[j],b,d)}},repairParentChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b&&d)a.chkDisabled=b;f.repairChkClass(c,a);f.repairParentChkDisabled(c,a.getParentNode(),b,d)}},setChkClass:function(c,a,b){a&&(b.nocheck===!0?a.hide():a.show(),a.attr("class",f.makeChkClass(c,b)))},setParentNodeCheckBox:function(c,a,b,d){var j=m(a,h.id.CHECK,c);d||(d=a);e.makeChkFlag(c,a);a.nocheck!==!0&&a.chkDisabled!==!0&&(e.nodeChecked(c,a,b),f.setChkClass(c,j,a),c.check.autoCheckTrigger&&a!=d&&c.treeObj.trigger(h.event.CHECK,
+            [null,c.treeId,a]));if(a.parentTId){j=!0;if(!b)for(var g=e.nodeChildren(c,a.getParentNode()),k=0,o=g.length;k<o;k++){var l=g[k],i=e.nodeChecked(c,l);if(l.nocheck!==!0&&l.chkDisabled!==!0&&i||(l.nocheck===!0||l.chkDisabled===!0)&&l.check_Child_State>0){j=!1;break}}j&&f.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var j=m(a,h.id.CHECK,c);d||(d=a);var g=!1,k=e.nodeChildren(c,a);if(k)for(var o=0,l=k.length;o<l;o++){var i=k[o];f.setSonNodeCheckBox(c,i,b,d);
+            i.chkDisabled===!0&&(g=!0)}if(a!=e.getRoot(c)&&a.chkDisabled!==!0){g&&a.nocheck!==!0&&e.makeChkFlag(c,a);if(a.nocheck!==!0&&a.chkDisabled!==!0){if(e.nodeChecked(c,a,b),!g)a.check_Child_State=k&&k.length>0?b?2:0:-1}else a.check_Child_State=-1;f.setChkClass(c,j,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&a.chkDisabled!==!0&&c.treeObj.trigger(h.event.CHECK,[null,c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=e.getRoot(c).radioCheckedList,b=0,d=a.length;b<d;b++)e.getNodeCache(c,
+            a[b].tId)||(a.splice(b,1),b--,d--);return a},getCheckStatus:function(c,a){if(!c.check.enable||a.nocheck||a.chkDisabled)return null;var b=e.nodeChecked(c,a);return{checked:b,half:a.halfCheck?a.halfCheck:c.check.chkStyle==h.radio.STYLE?a.check_Child_State===2:b?a.check_Child_State>-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var j=b&&c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL,d=!d?[]:d,g=0,f=a.length;g<f;g++){var i=
+            a[g],l=e.nodeChildren(c,i),m=e.nodeChecked(c,i);if(i.nocheck!==!0&&i.chkDisabled!==!0&&m==b&&(d.push(i),j))break;e.getTreeCheckedNodes(c,l,b,d);if(j&&d.length>0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var b=!b?[]:b,d=0,j=a.length;d<j;d++){var g=a[d],f=e.nodeChildren(c,g),h=e.nodeChecked(c,g);g.nocheck!==!0&&g.chkDisabled!==!0&&h!=g.checkedOld&&b.push(g);e.getTreeChangeCheckedNodes(c,f,b)}return b},makeChkFlag:function(c,a){if(a){var b=-1,d=e.nodeChildren(c,a);
+            if(d)for(var j=0,g=d.length;j<g;j++){var f=d[j],i=e.nodeChecked(c,f),l=-1;if(c.check.chkStyle==h.radio.STYLE)if(l=f.nocheck===!0||f.chkDisabled===!0?f.check_Child_State:f.halfCheck===!0?2:i?2:f.check_Child_State>0?2:0,l==2){b=2;break}else l==0&&(b=0);else if(c.check.chkStyle==h.checkbox.STYLE)if(l=f.nocheck===!0||f.chkDisabled===!0?f.check_Child_State:f.halfCheck===!0?1:i?f.check_Child_State===-1||f.check_Child_State===2?2:1:f.check_Child_State>0?1:0,l===1){b=1;break}else if(l===2&&b>-1&&j>0&&l!==
+                b){b=1;break}else if(b===2&&l>-1&&l<2){b=1;break}else l>-1&&(b=l)}a.check_Child_State=b}}}});var n=n.fn.zTree,i=n._z.tools,h=n.consts,f=n._z.view,e=n._z.data,m=i.$;e.nodeChecked=function(c,a,b){if(!a)return!1;c=c.data.key.checked;typeof b!=="undefined"&&(typeof b==="string"&&(b=i.eqs(b,"true")),a[c]=!!b);return a[c]};e.exSetting(w);e.addInitBind(function(c){c.treeObj.bind(h.event.CHECK,function(a,b,d,e){a.srcEvent=b;i.apply(c.callback.onCheck,[a,d,e])})});e.addInitUnBind(function(c){c.treeObj.unbind(h.event.CHECK)});
+    e.addInitCache(function(){});e.addInitNode(function(c,a,b,d){if(b){a=e.nodeChecked(c,b);a=e.nodeChecked(c,b,a);b.checkedOld=a;if(typeof b.nocheck=="string")b.nocheck=i.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=i.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||c.check.chkDisabledInherit&&d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=i.eqs(b.halfCheck,"true");b.halfCheck=!!b.halfCheck;
+        b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return e.getCheckStatus(c,b)};c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL&&a&&e.getRoot(c).radioCheckedList.push(b)}});e.addInitProxy(function(c){var a=c.target,b=e.getSetting(c.data.treeId),d="",f=null,g="",k=null;if(i.eqs(c.type,"mouseover")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoverCheck"}else if(i.eqs(c.type,"mouseout")){if(b.check.enable&&
+        i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoutCheck"}else if(i.eqs(c.type,"click")&&b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="checkNode";if(d.length>0)switch(f=e.getNodeCache(b,d),g){case "checkNode":k=q;break;case "mouseoverCheck":k=r;break;case "mouseoutCheck":k=s}return{stop:g==="checkNode",node:f,nodeEventType:g,nodeEventCallback:k,treeEventType:"",treeEventCallback:null}},
+        !0);e.addInitRoot(function(c){e.getRoot(c).radioCheckedList=[]});e.addBeforeA(function(c,a,b){c.check.enable&&(e.makeChkFlag(c,a),b.push("<span ID='",a.tId,h.id.CHECK,"' class='",f.makeChkClass(c,a),"' treeNode",h.id.CHECK,a.nocheck===!0?" style='display:none;'":"","></span>"))});e.addZTreeTools(function(c,a){a.checkNode=function(a,b,g,k){var o=e.nodeChecked(c,a);if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!o),k=!!k,(o!==b||g)&&!(k&&i.apply(this.setting.callback.beforeCheck,[this.setting.treeId,a],
+        !0)==!1)&&i.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))e.nodeChecked(c,a,b),b=m(a,h.id.CHECK,this.setting),(g||this.setting.check.chkStyle===h.radio.STYLE)&&f.checkNodeRelation(this.setting,a),f.setChkClass(this.setting,b,a),f.repairParentChkClassWithSelf(this.setting,a),k&&this.setting.treeObj.trigger(h.event.CHECK,[null,this.setting.treeId,a])};a.checkAllNodes=function(a){f.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var a=a!==!1,b=e.nodeChildren(c,e.getRoot(this.setting));
+        return e.getTreeCheckedNodes(this.setting,b,a)};a.getChangeCheckedNodes=function(){var a=e.nodeChildren(c,e.getRoot(this.setting));return e.getTreeChangeCheckedNodes(this.setting,a)};a.setChkDisabled=function(a,b,c,e){b=!!b;c=!!c;f.repairSonChkDisabled(this.setting,a,b,!!e);f.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var b=a.updateNode;a.updateNode=function(c,e){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&m(c,this.setting).get(0)&&i.uCanDo(this.setting)){var g=m(c,
+        h.id.CHECK,this.setting);(e==!0||this.setting.check.chkStyle===h.radio.STYLE)&&f.checkNodeRelation(this.setting,c);f.setChkClass(this.setting,g,c);f.repairParentChkClassWithSelf(this.setting,c)}}});var t=f.createNodes;f.createNodes=function(c,a,b,d,e){t&&t.apply(f,arguments);b&&f.repairParentChkClassWithSelf(c,d)};var u=f.removeNode;f.removeNode=function(c,a){var b=a.getParentNode();u&&u.apply(f,arguments);a&&b&&(f.repairChkClass(c,b),f.repairParentChkClass(c,b))};var v=f.appendNodes;f.appendNodes=
+        function(c,a,b,d,h,g,i){var m="";v&&(m=v.apply(f,arguments));d&&e.makeChkFlag(c,d);return m}})(jQuery);
+
+/*
+ * JQuery zTree exedit v3.5.37
+ * http://treejs.cn/
+ *
+ * Copyright (c) 2010 Hunter.z
+ *
+ * Licensed same as jquery - MIT License
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * email: hunter.z@263.net
+ * Date: 2018-08-21
+ */
+(function(B){var I={event:{DRAG:"ztree_drag",DROP:"ztree_drop",RENAME:"ztree_rename",DRAGMOVE:"ztree_dragmove"},id:{EDIT:"_edit",INPUT:"_input",REMOVE:"_remove"},move:{TYPE_INNER:"inner",TYPE_PREV:"prev",TYPE_NEXT:"next"},node:{CURSELECTED_EDIT:"curSelectedNode_Edit",TMPTARGET_TREE:"tmpTargetzTree",TMPTARGET_NODE:"tmpTargetNode"}},v={onHoverOverNode:function(a,b){var c=i.getSetting(a.data.treeId),d=i.getRoot(c);if(d.curHoverNode!=b)v.onHoverOutNode(a);d.curHoverNode=b;e.addHoverDom(c,b)},onHoverOutNode:function(a){var a=
+        i.getSetting(a.data.treeId),b=i.getRoot(a);if(b.curHoverNode&&!i.isSelectedNode(a,b.curHoverNode))e.removeTreeDom(a,b.curHoverNode),b.curHoverNode=null},onMousedownNode:function(a,b){function c(a){if(m.dragFlag==0&&Math.abs(N-a.clientX)<f.edit.drag.minMoveSize&&Math.abs(O-a.clientY)<f.edit.drag.minMoveSize)return!0;var b,c,g,j;L.css("cursor","pointer");if(m.dragFlag==0){if(k.apply(f.callback.beforeDrag,[f.treeId,n],!0)==!1)return l(a),!0;for(b=0,c=n.length;b<c;b++){if(b==0)m.dragNodeShowBefore=[];
+        g=n[b];i.nodeIsParent(f,g)&&g.open?(e.expandCollapseNode(f,g,!g.open),m.dragNodeShowBefore[g.tId]=!0):m.dragNodeShowBefore[g.tId]=!1}m.dragFlag=1;y.showHoverDom=!1;k.showIfameMask(f,!0);j=!0;var p=-1;if(n.length>1){var o=n[0].parentTId?i.nodeChildren(f,n[0].getParentNode()):i.getNodes(f);g=[];for(b=0,c=o.length;b<c;b++)if(m.dragNodeShowBefore[o[b].tId]!==void 0&&(j&&p>-1&&p+1!==b&&(j=!1),g.push(o[b]),p=b),n.length===g.length){n=g;break}}j&&(H=n[0].getPreNode(),Q=n[n.length-1].getNextNode());C=q("<ul class='zTreeDragUL'></ul>",
+        f);for(b=0,c=n.length;b<c;b++)g=n[b],g.editNameFlag=!1,e.selectNode(f,g,b>0),e.removeTreeDom(f,g),b>f.edit.drag.maxShowNodeNum-1||(j=q("<li id='"+g.tId+"_tmp'></li>",f),j.append(q(g,d.id.A,f).clone()),j.css("padding","0"),j.children("#"+g.tId+d.id.A).removeClass(d.node.CURSELECTED),C.append(j),b==f.edit.drag.maxShowNodeNum-1&&(j=q("<li id='"+g.tId+"_moretmp'><a>  ...  </a></li>",f),C.append(j)));C.attr("id",n[0].tId+d.id.UL+"_tmp");C.addClass(f.treeObj.attr("class"));C.appendTo(L);u=q("<span class='tmpzTreeMove_arrow'></span>",
+        f);u.attr("id","zTreeMove_arrow_tmp");u.appendTo(L);f.treeObj.trigger(d.event.DRAG,[a,f.treeId,n])}if(m.dragFlag==1){t&&u.attr("id")==a.target.id&&w&&a.clientX+G.scrollLeft()+2>B("#"+w+d.id.A,t).offset().left?(g=B("#"+w+d.id.A,t),a.target=g.length>0?g.get(0):a.target):t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER));
+        w=t=null;J=!1;h=f;g=i.getSettings();for(var z in g)if(g[z].treeId&&g[z].edit.enable&&g[z].treeId!=f.treeId&&(a.target.id==g[z].treeId||B(a.target).parents("#"+g[z].treeId).length>0))J=!0,h=g[z];z=G.scrollTop();j=G.scrollLeft();p=h.treeObj.offset();b=h.treeObj.get(0).scrollHeight;g=h.treeObj.get(0).scrollWidth;c=a.clientY+z-p.top;var E=h.treeObj.height()+p.top-a.clientY-z,r=a.clientX+j-p.left,s=h.treeObj.width()+p.left-a.clientX-j,p=c<f.edit.drag.borderMax&&c>f.edit.drag.borderMin,o=E<f.edit.drag.borderMax&&
+            E>f.edit.drag.borderMin,F=r<f.edit.drag.borderMax&&r>f.edit.drag.borderMin,v=s<f.edit.drag.borderMax&&s>f.edit.drag.borderMin,E=c>f.edit.drag.borderMin&&E>f.edit.drag.borderMin&&r>f.edit.drag.borderMin&&s>f.edit.drag.borderMin,r=p&&h.treeObj.scrollTop()<=0,s=o&&h.treeObj.scrollTop()+h.treeObj.height()+10>=b,M=F&&h.treeObj.scrollLeft()<=0,P=v&&h.treeObj.scrollLeft()+h.treeObj.width()+10>=g;if(a.target&&k.isChildOrSelf(a.target,h.treeId)){for(var D=a.target;D&&D.tagName&&!k.eqs(D.tagName,"li")&&D.id!=
+        h.treeId;)D=D.parentNode;var R=!0;for(b=0,c=n.length;b<c;b++)if(g=n[b],D.id===g.tId){R=!1;break}else if(q(g,f).find("#"+D.id).length>0){R=!1;break}if(R&&a.target&&k.isChildOrSelf(a.target,D.id+d.id.A))t=B(D),w=D.id}g=n[0];if(E&&k.isChildOrSelf(a.target,h.treeId)){if(!t&&(a.target.id==h.treeId||r||s||M||P)&&(J||!J&&g.parentTId))t=h.treeObj;p?h.treeObj.scrollTop(h.treeObj.scrollTop()-10):o&&h.treeObj.scrollTop(h.treeObj.scrollTop()+10);F?h.treeObj.scrollLeft(h.treeObj.scrollLeft()-10):v&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+
+            10);t&&t!=h.treeObj&&t.offset().left<h.treeObj.offset().left&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+t.offset().left-h.treeObj.offset().left)}C.css({top:a.clientY+z+3+"px",left:a.clientX+j+3+"px"});b=j=0;if(t&&t.attr("id")!=h.treeId){var A=w==null?null:i.getNodeCache(h,w),p=(a.ctrlKey||a.metaKey)&&f.edit.drag.isMove&&f.edit.drag.isCopy||!f.edit.drag.isMove&&f.edit.drag.isCopy;c=!!(H&&w===H.tId);F=!!(Q&&w===Q.tId);o=g.parentTId&&g.parentTId==w;g=(p||!F)&&k.apply(h.edit.drag.prev,[h.treeId,n,A],
+            !!h.edit.drag.prev);c=(p||!c)&&k.apply(h.edit.drag.next,[h.treeId,n,A],!!h.edit.drag.next);p=(p||!o)&&!(h.data.keep.leaf&&!i.nodeIsParent(f,A))&&k.apply(h.edit.drag.inner,[h.treeId,n,A],!!h.edit.drag.inner);o=function(){t=null;w="";x=d.move.TYPE_INNER;u.css({display:"none"});if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null};if(!g&&!c&&!p)o();else if(F=B("#"+w+d.id.A,t),v=A.isLastNode?null:B("#"+A.getNextNode().tId+d.id.A,t.next()),E=F.offset().top,r=
+            F.offset().left,s=g?p?0.25:c?0.5:1:-1,M=c?p?0.75:g?0.5:0:-1,z=(a.clientY+z-E)/F.height(),(s==1||z<=s&&z>=-0.2)&&g?(j=1-u.width(),b=E-u.height()/2,x=d.move.TYPE_PREV):(M==0||z>=M&&z<=1.2)&&c?(j=1-u.width(),b=v==null||i.nodeIsParent(f,A)&&A.open?E+F.height()-u.height()/2:v.offset().top-u.height()/2,x=d.move.TYPE_NEXT):p?(j=5-u.width(),b=E,x=d.move.TYPE_INNER):o(),t){u.css({display:"block",top:b+"px",left:r+j+"px"});F.addClass(d.node.TMPTARGET_NODE+"_"+x);if(S!=w||T!=x)K=(new Date).getTime();if(A&&i.nodeIsParent(f,
+            A)&&x==d.move.TYPE_INNER&&(z=!0,window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId!==A.tId?(clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null):window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId===A.tId&&(z=!1),z))window.zTreeMoveTimer=setTimeout(function(){x==d.move.TYPE_INNER&&A&&i.nodeIsParent(f,A)&&!A.open&&(new Date).getTime()-K>h.edit.drag.autoOpenTime&&k.apply(h.callback.beforeDragOpen,[h.treeId,A],!0)&&(e.switchNode(h,A),h.edit.drag.autoExpandTrigger&&h.treeObj.trigger(d.event.EXPAND,
+            [h.treeId,A]))},h.edit.drag.autoOpenTime+50),window.zTreeMoveTargetNodeTId=A.tId}}else if(x=d.move.TYPE_INNER,t&&k.apply(h.edit.drag.inner,[h.treeId,n,null],!!h.edit.drag.inner)?t.addClass(d.node.TMPTARGET_TREE):t=null,u.css({display:"none"}),window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;S=w;T=x;f.treeObj.trigger(d.event.DRAGMOVE,[a,f.treeId,n])}return!1}function l(a){if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=
+        null;T=S=null;G.unbind("mousemove",c);G.unbind("mouseup",l);G.unbind("selectstart",g);L.css("cursor","");t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER));k.showIfameMask(f,!1);y.showHoverDom=!0;if(m.dragFlag!=0){m.dragFlag=0;var b,j,o;for(b=0,j=n.length;b<j;b++)o=n[b],i.nodeIsParent(f,o)&&m.dragNodeShowBefore[o.tId]&&
+    !o.open&&(e.expandCollapseNode(f,o,!o.open),delete m.dragNodeShowBefore[o.tId]);C&&C.remove();u&&u.remove();var r=(a.ctrlKey||a.metaKey)&&f.edit.drag.isMove&&f.edit.drag.isCopy||!f.edit.drag.isMove&&f.edit.drag.isCopy;!r&&t&&w&&n[0].parentTId&&w==n[0].parentTId&&x==d.move.TYPE_INNER&&(t=null);if(t){var p=w==null?null:i.getNodeCache(h,w);if(k.apply(f.callback.beforeDrop,[h.treeId,n,p,x,r],!0)==!1)e.selectNodes(v,n);else{var s=r?k.clone(n):n;b=function(){if(J){if(!r)for(var b=0,c=n.length;b<c;b++)e.removeNode(f,
+        n[b]);x==d.move.TYPE_INNER?e.addNodes(h,p,-1,s):e.addNodes(h,p.getParentNode(),x==d.move.TYPE_PREV?p.getIndex():p.getIndex()+1,s)}else if(r&&x==d.move.TYPE_INNER)e.addNodes(h,p,-1,s);else if(r)e.addNodes(h,p.getParentNode(),x==d.move.TYPE_PREV?p.getIndex():p.getIndex()+1,s);else if(x!=d.move.TYPE_NEXT)for(b=0,c=s.length;b<c;b++)e.moveNode(h,p,s[b],x,!1);else for(b=-1,c=s.length-1;b<c;c--)e.moveNode(h,p,s[c],x,!1);e.selectNodes(h,s);b=q(s[0],f).get(0);e.scrollIntoView(f,b);f.treeObj.trigger(d.event.DROP,
+        [a,h.treeId,s,p,x,r])};x==d.move.TYPE_INNER&&k.canAsync(h,p)?e.asyncNode(h,p,!1,b):b()}}else e.selectNodes(v,n),f.treeObj.trigger(d.event.DROP,[a,f.treeId,n,null,null,null])}}function g(){return!1}var o,j,f=i.getSetting(a.data.treeId),m=i.getRoot(f),y=i.getRoots();if(a.button==2||!f.edit.enable||!f.edit.drag.isCopy&&!f.edit.drag.isMove)return!0;var r=a.target,s=i.getRoot(f).curSelectedList,n=[];if(i.isSelectedNode(f,b))for(o=0,j=s.length;o<j;o++){if(s[o].editNameFlag&&k.eqs(r.tagName,"input")&&r.getAttribute("treeNode"+
+        d.id.INPUT)!==null)return!0;n.push(s[o]);if(n[0].parentTId!==s[o].parentTId){n=[b];break}}else n=[b];e.editNodeBlur=!0;e.cancelCurEditNode(f);var G=B(f.treeObj.get(0).ownerDocument),L=B(f.treeObj.get(0).ownerDocument.body),C,u,t,J=!1,h=f,v=f,H,Q,S=null,T=null,w=null,x=d.move.TYPE_INNER,N=a.clientX,O=a.clientY,K=(new Date).getTime();k.uCanDo(f)&&G.bind("mousemove",c);G.bind("mouseup",l);G.bind("selectstart",g);return!0}};B.extend(!0,B.fn.zTree.consts,I);B.extend(!0,B.fn.zTree._z,{tools:{getAbs:function(a){a=
+            a.getBoundingClientRect();return[a.left+(document.body.scrollLeft+document.documentElement.scrollLeft),a.top+(document.body.scrollTop+document.documentElement.scrollTop)]},inputFocus:function(a){a.get(0)&&(a.focus(),k.setCursorPosition(a.get(0),a.val().length))},inputSelect:function(a){a.get(0)&&(a.focus(),a.select())},setCursorPosition:function(a,b){if(a.setSelectionRange)a.focus(),a.setSelectionRange(b,b);else if(a.createTextRange){var c=a.createTextRange();c.collapse(!0);c.moveEnd("character",
+            b);c.moveStart("character",b);c.select()}},showIfameMask:function(a,b){for(var c=i.getRoot(a);c.dragMaskList.length>0;)c.dragMaskList[0].remove(),c.dragMaskList.shift();if(b)for(var d=q("iframe",a),g=0,e=d.length;g<e;g++){var j=d.get(g),f=k.getAbs(j),j=q("<div id='zTreeMask_"+g+"' class='zTreeMask' style='top:"+f[1]+"px; left:"+f[0]+"px; width:"+j.offsetWidth+"px; height:"+j.offsetHeight+"px;'></div>",a);j.appendTo(q("body",a));c.dragMaskList.push(j)}}},view:{addEditBtn:function(a,b){if(!(b.editNameFlag||
+            q(b,d.id.EDIT,a).length>0)&&k.apply(a.edit.showRenameBtn,[a.treeId,b],a.edit.showRenameBtn)){var c=q(b,d.id.A,a),l="<span class='"+d.className.BUTTON+" edit' id='"+b.tId+d.id.EDIT+"' title='"+k.apply(a.edit.renameTitle,[a.treeId,b],a.edit.renameTitle)+"' treeNode"+d.id.EDIT+" style='display:none;'></span>";c.append(l);q(b,d.id.EDIT,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeEditName,[a.treeId,b],!0)==!1)return!1;e.editNode(a,b);return!1}).show()}},addRemoveBtn:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                b){if(!(b.editNameFlag||q(b,d.id.REMOVE,a).length>0)&&k.apply(a.edit.showRemoveBtn,[a.treeId,b],a.edit.showRemoveBtn)){var c=q(b,d.id.A,a),l="<span class='"+d.className.BUTTON+" remove' id='"+b.tId+d.id.REMOVE+"' title='"+k.apply(a.edit.removeTitle,[a.treeId,b],a.edit.removeTitle)+"' treeNode"+d.id.REMOVE+" style='display:none;'></span>";c.append(l);q(b,d.id.REMOVE,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeRemove,[a.treeId,b],!0)==!1)return!1;e.removeNode(a,b);a.treeObj.trigger(d.event.REMOVE,
+            [a.treeId,b]);return!1}).bind("mousedown",function(){return!0}).show()}},addHoverDom:function(a,b){if(i.getRoots().showHoverDom)b.isHover=!0,a.edit.enable&&(e.addEditBtn(a,b),e.addRemoveBtn(a,b)),k.apply(a.view.addHoverDom,[a.treeId,b])},cancelCurEditNode:function(a,b,c){var l=i.getRoot(a),g=l.curEditNode;if(g){var o=l.curEditInput,b=b?b:c?i.nodeName(a,g):o.val();if(k.apply(a.callback.beforeRename,[a.treeId,g,b,c],!0)===!1)return!1;i.nodeName(a,g,b);q(g,d.id.A,a).removeClass(d.node.CURSELECTED_EDIT);
+            o.unbind();e.setNodeName(a,g);g.editNameFlag=!1;l.curEditNode=null;l.curEditInput=null;e.selectNode(a,g,!1);a.treeObj.trigger(d.event.RENAME,[a.treeId,g,c])}return l.noSelection=!0},editNode:function(a,b){var c=i.getRoot(a);e.editNodeBlur=!1;if(i.isSelectedNode(a,b)&&c.curEditNode==b&&b.editNameFlag)setTimeout(function(){k.inputFocus(c.curEditInput)},0);else{b.editNameFlag=!0;e.removeTreeDom(a,b);e.cancelCurEditNode(a);e.selectNode(a,b,!1);q(b,d.id.SPAN,a).html("<input type=text class='rename' id='"+
+            b.tId+d.id.INPUT+"' treeNode"+d.id.INPUT+" >");var l=q(b,d.id.INPUT,a);l.attr("value",i.nodeName(a,b));a.edit.editNameSelectAll?k.inputSelect(l):k.inputFocus(l);l.bind("blur",function(){e.editNodeBlur||e.cancelCurEditNode(a)}).bind("keydown",function(b){b.keyCode=="13"?(e.editNodeBlur=!0,e.cancelCurEditNode(a)):b.keyCode=="27"&&e.cancelCurEditNode(a,null,!0)}).bind("click",function(){return!1}).bind("dblclick",function(){return!1});q(b,d.id.A,a).addClass(d.node.CURSELECTED_EDIT);c.curEditInput=l;
+            c.noSelection=!1;c.curEditNode=b}},moveNode:function(a,b,c,l,g,k){var j=i.getRoot(a);if(b!=c&&(!a.data.keep.leaf||!b||i.nodeIsParent(a,b)||l!=d.move.TYPE_INNER)){var f=c.parentTId?c.getParentNode():j,m=b===null||b==j;m&&b===null&&(b=j);if(m)l=d.move.TYPE_INNER;j=b.parentTId?b.getParentNode():j;if(l!=d.move.TYPE_PREV&&l!=d.move.TYPE_NEXT)l=d.move.TYPE_INNER;if(l==d.move.TYPE_INNER)if(m)c.parentTId=null;else{if(!i.nodeIsParent(a,b))i.nodeIsParent(a,b,!0),b.open=!!b.open,e.setNodeLineIcos(a,b);c.parentTId=
+            b.tId}var y;m?y=m=a.treeObj:(!k&&l==d.move.TYPE_INNER?e.expandCollapseNode(a,b,!0,!1):k||e.expandCollapseNode(a,b.getParentNode(),!0,!1),m=q(b,a),y=q(b,d.id.UL,a),m.get(0)&&!y.get(0)&&(y=[],e.makeUlHtml(a,b,y,""),m.append(y.join(""))),y=q(b,d.id.UL,a));var r=q(c,a);r.get(0)?m.get(0)||r.remove():r=e.appendNodes(a,c.level,[c],null,-1,!1,!0).join("");y.get(0)&&l==d.move.TYPE_INNER?y.append(r):m.get(0)&&l==d.move.TYPE_PREV?m.before(r):m.get(0)&&l==d.move.TYPE_NEXT&&m.after(r);var s;y=-1;var r=0,n=null,
+            m=null,B=c.level,v=i.nodeChildren(a,f),C=i.nodeChildren(a,j),u=i.nodeChildren(a,b);if(c.isFirstNode){if(y=0,v.length>1)n=v[1],n.isFirstNode=!0}else if(c.isLastNode)y=v.length-1,n=v[y-1],n.isLastNode=!0;else for(j=0,s=v.length;j<s;j++)if(v[j].tId==c.tId){y=j;break}y>=0&&v.splice(y,1);if(l!=d.move.TYPE_INNER)for(j=0,s=C.length;j<s;j++)C[j].tId==b.tId&&(r=j);if(l==d.move.TYPE_INNER){u||(u=i.nodeChildren(a,b,[]));if(u.length>0)m=u[u.length-1],m.isLastNode=!1;u.splice(u.length,0,c);c.isLastNode=!0;c.isFirstNode=
+            u.length==1}else b.isFirstNode&&l==d.move.TYPE_PREV?(C.splice(r,0,c),m=b,m.isFirstNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!0,c.isLastNode=!1):b.isLastNode&&l==d.move.TYPE_NEXT?(C.splice(r+1,0,c),m=b,m.isLastNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!0):(l==d.move.TYPE_PREV?C.splice(r,0,c):C.splice(r+1,0,c),c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!1);i.fixPIdKeyValue(a,c);i.setSonNodeLevel(a,c.getParentNode(),c);e.setNodeLineIcos(a,c);e.repairNodeLevelClass(a,
+            c,B);!a.data.keep.parent&&v.length<1?(i.nodeIsParent(a,f,!1),f.open=!1,b=q(f,d.id.UL,a),l=q(f,d.id.SWITCH,a),j=q(f,d.id.ICON,a),e.replaceSwitchClass(f,l,d.folder.DOCU),e.replaceIcoClass(f,j,d.folder.DOCU),b.css("display","none")):n&&e.setNodeLineIcos(a,n);m&&e.setNodeLineIcos(a,m);a.check&&a.check.enable&&e.repairChkClass&&(e.repairChkClass(a,f),e.repairParentChkClassWithSelf(a,f),f!=c.parent&&e.repairParentChkClassWithSelf(a,c));k||e.expandCollapseParentNode(a,c.getParentNode(),!0,g)}},removeEditBtn:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               b){q(b,d.id.EDIT,a).unbind().remove()},removeRemoveBtn:function(a,b){q(b,d.id.REMOVE,a).unbind().remove()},removeTreeDom:function(a,b){b.isHover=!1;e.removeEditBtn(a,b);e.removeRemoveBtn(a,b);k.apply(a.view.removeHoverDom,[a.treeId,b])},repairNodeLevelClass:function(a,b,c){if(c!==b.level){var e=q(b,a),g=q(b,d.id.A,a),a=q(b,d.id.UL,a),c=d.className.LEVEL+c,b=d.className.LEVEL+b.level;e.removeClass(c);e.addClass(b);g.removeClass(c);g.addClass(b);a.removeClass(c);a.addClass(b)}},selectNodes:function(a,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     b){for(var c=0,d=b.length;c<d;c++)e.selectNode(a,b[c],c>0)}},event:{},data:{setSonNodeLevel:function(a,b,c){if(c){var d=i.nodeChildren(a,c);c.level=b?b.level+1:0;if(d)for(var b=0,g=d.length;b<g;b++)d[b]&&i.setSonNodeLevel(a,c,d[b])}}}});var H=B.fn.zTree,k=H._z.tools,d=H.consts,e=H._z.view,i=H._z.data,q=k.$;i.exSetting({edit:{enable:!1,editNameSelectAll:!1,showRemoveBtn:!0,showRenameBtn:!0,removeTitle:"remove",renameTitle:"rename",drag:{autoExpandTrigger:!1,isCopy:!0,isMove:!0,prev:!0,next:!0,inner:!0,
+            minMoveSize:5,borderMax:10,borderMin:-5,maxShowNodeNum:5,autoOpenTime:500}},view:{addHoverDom:null,removeHoverDom:null},callback:{beforeDrag:null,beforeDragOpen:null,beforeDrop:null,beforeEditName:null,beforeRename:null,onDrag:null,onDragMove:null,onDrop:null,onRename:null}});i.addInitBind(function(a){var b=a.treeObj,c=d.event;b.bind(c.RENAME,function(b,c,d,e){k.apply(a.callback.onRename,[b,c,d,e])});b.bind(c.DRAG,function(b,c,d,e){k.apply(a.callback.onDrag,[c,d,e])});b.bind(c.DRAGMOVE,function(b,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                c,d,e){k.apply(a.callback.onDragMove,[c,d,e])});b.bind(c.DROP,function(b,c,d,e,f,i,q){k.apply(a.callback.onDrop,[c,d,e,f,i,q])})});i.addInitUnBind(function(a){var a=a.treeObj,b=d.event;a.unbind(b.RENAME);a.unbind(b.DRAG);a.unbind(b.DRAGMOVE);a.unbind(b.DROP)});i.addInitCache(function(){});i.addInitNode(function(a,b,c){if(c)c.isHover=!1,c.editNameFlag=!1});i.addInitProxy(function(a){var b=a.target,c=i.getSetting(a.data.treeId),e=a.relatedTarget,g="",o=null,j="",f=null,m=null;if(k.eqs(a.type,"mouseover")){if(m=
+    k.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+d.id.A}]))g=k.getNodeMainDom(m).id,j="hoverOverNode"}else if(k.eqs(a.type,"mouseout"))m=k.getMDom(c,e,[{tagName:"a",attrName:"treeNode"+d.id.A}]),m||(g="remove",j="hoverOutNode");else if(k.eqs(a.type,"mousedown")&&(m=k.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+d.id.A}])))g=k.getNodeMainDom(m).id,j="mousedownNode";if(g.length>0)switch(o=i.getNodeCache(c,g),j){case "mousedownNode":f=v.onMousedownNode;break;case "hoverOverNode":f=v.onHoverOverNode;
+    break;case "hoverOutNode":f=v.onHoverOutNode}return{stop:!1,node:o,nodeEventType:j,nodeEventCallback:f,treeEventType:"",treeEventCallback:null}});i.addInitRoot(function(a){var a=i.getRoot(a),b=i.getRoots();a.curEditNode=null;a.curEditInput=null;a.curHoverNode=null;a.dragFlag=0;a.dragNodeShowBefore=[];a.dragMaskList=[];b.showHoverDom=!0});i.addZTreeTools(function(a,b){b.cancelEditName=function(a){i.getRoot(this.setting).curEditNode&&e.cancelCurEditNode(this.setting,a?a:null,!0)};b.copyNode=function(b,
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           l,g,o){if(!l)return null;var j=i.nodeIsParent(a,b);if(b&&!j&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;var f=this,m=k.clone(l);if(!b)b=null,g=d.move.TYPE_INNER;g==d.move.TYPE_INNER?(l=function(){e.addNodes(f.setting,b,-1,[m],o)},k.canAsync(this.setting,b)?e.asyncNode(this.setting,b,o,l):l()):(e.addNodes(this.setting,b.parentNode,-1,[m],o),e.moveNode(this.setting,b,m,g,!1,o));return m};b.editName=function(a){a&&a.tId&&a===i.getNodeCache(this.setting,a.tId)&&(a.parentTId&&e.expandCollapseParentNode(this.setting,
+    a.getParentNode(),!0),e.editNode(this.setting,a))};b.moveNode=function(b,l,g,o){function j(){e.moveNode(m.setting,b,l,g,!1,o)}if(!l)return l;var f=i.nodeIsParent(a,b);if(b&&!f&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;else if(b&&(l.parentTId==b.tId&&g==d.move.TYPE_INNER||q(l,this.setting).find("#"+b.tId).length>0))return null;else b||(b=null);var m=this;k.canAsync(this.setting,b)&&g===d.move.TYPE_INNER?e.asyncNode(this.setting,b,o,j):j();return l};b.setEditable=function(a){this.setting.edit.enable=
+    a;return this.refresh()}});var N=e.cancelPreSelectedNode;e.cancelPreSelectedNode=function(a,b){for(var c=i.getRoot(a).curSelectedList,d=0,g=c.length;d<g;d++)if(!b||b===c[d])if(e.removeTreeDom(a,c[d]),b)break;N&&N.apply(e,arguments)};var O=e.createNodes;e.createNodes=function(a,b,c,d,g){O&&O.apply(e,arguments);c&&e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(a,d)};var V=e.makeNodeUrl;e.makeNodeUrl=function(a,b){return a.edit.enable?null:V.apply(e,arguments)};var K=e.removeNode;e.removeNode=
+    function(a,b){var c=i.getRoot(a);if(c.curEditNode===b)c.curEditNode=null;K&&K.apply(e,arguments)};var P=e.selectNode;e.selectNode=function(a,b,c){var d=i.getRoot(a);if(i.isSelectedNode(a,b)&&d.curEditNode==b&&b.editNameFlag)return!1;P&&P.apply(e,arguments);e.addHoverDom(a,b);return!0};var U=k.uCanDo;k.uCanDo=function(a,b){var c=i.getRoot(a);if(b&&(k.eqs(b.type,"mouseover")||k.eqs(b.type,"mouseout")||k.eqs(b.type,"mousedown")||k.eqs(b.type,"mouseup")))return!0;if(c.curEditNode)e.editNodeBlur=!1,c.curEditInput.focus();
+    return!c.curEditNode&&(U?U.apply(e,arguments):!0)}})(jQuery);
+

Some files were not shown because too many files changed in this diff