From 5b48b2f5e5a823f41860712a724f0b17b1294bc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com>
Date: Mon, 24 Mar 2025 16:40:12 +0800
Subject: [PATCH] =?UTF-8?q?refactor(boards):=20=E8=A7=84=E8=8C=83=E5=8C=96?=
=?UTF-8?q?arduino=E6=9D=BF=E5=8D=A1=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
boards/default_src/arduino/blocks/ethernet.js | 1208 +----------------
boards/default_src/arduino/blocks/text.js | 19 +-
.../default_src/arduino/blocks/variables.js | 30 +-
.../arduino/generators/ethernet.js | 1188 +---------------
.../arduino/templates/json/cities.json | 1185 ++++++++++++++++
.../arduino_avr/blocks/actuator.js | 442 ++++--
.../default_src/arduino_avr/blocks/blynk.js | 36 +-
.../arduino_avr/blocks/communicate.js | 81 +-
.../default_src/arduino_avr/blocks/control.js | 219 +--
.../default_src/arduino_avr/blocks/display.js | 203 ++-
.../arduino_avr/blocks/ethernet.js | 49 +-
.../default_src/arduino_avr/blocks/factory.js | 13 +-
.../default_src/arduino_avr/blocks/inout.js | 112 +-
.../default_src/arduino_avr/blocks/lists.js | 16 +-
.../default_src/arduino_avr/blocks/logic.js | 3 +-
boards/default_src/arduino_avr/blocks/math.js | 164 ++-
boards/default_src/arduino_avr/blocks/pins.js | 5 +
.../default_src/arduino_avr/blocks/scoop.js | 16 +-
.../default_src/arduino_avr/blocks/sensor.js | 251 ++--
.../default_src/arduino_avr/blocks/serial.js | 31 +-
.../default_src/arduino_avr/blocks/storage.js | 38 +-
boards/default_src/arduino_avr/blocks/text.js | 61 +-
.../default_src/arduino_avr/blocks/tools.js | 1 -
boards/default_src/arduino_avr/template.xml | 10 -
.../arduino_esp32/blocks/actuator.js | 1 -
.../arduino_esp32/blocks/communicate.js | 5 +-
.../arduino_esp32/blocks/control.js | 43 +-
.../arduino_esp32/blocks/ethernet.js | 6 +-
.../arduino_esp32/blocks/handbit.js | 50 +-
.../default_src/arduino_esp32/blocks/inout.js | 24 +-
.../arduino_esp32/blocks/mixepi.js | 57 +-
.../default_src/arduino_esp32/blocks/mixgo.js | 45 +-
.../arduino_esp32/blocks/pinout.js | 1 -
.../default_src/arduino_esp32/blocks/pins.js | 3 +-
.../arduino_esp32/blocks/pocketcard.js | 3 +
.../arduino_esp32/blocks/sensor.js | 22 +-
.../arduino_esp32/blocks/serial.js | 31 +-
.../arduino_esp32/blocks/storage.js | 15 +-
.../default_src/arduino_esp8266/template.xml | 112 +-
39 files changed, 2523 insertions(+), 3276 deletions(-)
create mode 100644 boards/default_src/arduino/templates/json/cities.json
diff --git a/boards/default_src/arduino/blocks/ethernet.js b/boards/default_src/arduino/blocks/ethernet.js
index 5cc18ca4..9d4d657a 100644
--- a/boards/default_src/arduino/blocks/ethernet.js
+++ b/boards/default_src/arduino/blocks/ethernet.js
@@ -1,7 +1,9 @@
import * as Blockly from 'blockly/core';
+import CITYS_DATA from '../templates/json/cities.json';
const ETHERNET_HUE = 0;
-const WEATHER_HUE = "#27b6ac";
+const WEATHER_HUE = '#27b6ac';
+
/**
* @name 模块名 Http GET请求
@@ -59,1192 +61,6 @@ export const http_post = {
}
};
-const CITYS_DATA = {
- "本地": {
- "-": {
- "pinyin": "ip"
- }
- },
- "北京": {
- "-": {
- "pinyin": "beijing"
- }
- },
- "天津": {
- "-": {
- "pinyin": "tianjin"
- }
- },
- "河北": {
- "石家庄": {
- "pinyin": "shijiazhuang"
- },
- "邯郸": {
- "pinyin": "handan"
- },
- "邢台": {
- "pinyin": "xingtai"
- },
- "衡水": {
- "pinyin": "hengshui"
- },
- "保定": {
- "pinyin": "baoding"
- },
- "沧州": {
- "pinyin": "cangzhou"
- },
- "张家口": {
- "pinyin": "zhangjiakou"
- },
- "廊坊": {
- "pinyin": "langfang"
- },
- "承德": {
- "pinyin": "chengde"
- },
- "唐山": {
- "pinyin": "tangshan"
- },
- "秦皇岛": {
- "pinyin": "qinhuangdao"
- }
- },
- "山西": {
- "太原": {
- "pinyin": "taiyuan"
- },
- "运城": {
- "pinyin": "yuncheng"
- },
- "临汾": {
- "pinyin": "linfen"
- },
- "吕梁": {
- "pinyin": "lvliang"
- },
- "朔州": {
- "pinyin": "shuozhou"
- },
- "晋城": {
- "pinyin": "jincheng"
- },
- "长治": {
- "pinyin": "changzhi"
- },
- "晋中": {
- "pinyin": "jinzhong"
- },
- "阳泉": {
- "pinyin": "yangquan"
- },
- "忻州": {
- "pinyin": "xinzhou"
- },
- "大同": {
- "pinyin": "datong"
- }
- },
- "内蒙古": {
- "呼和浩特": {
- "pinyin": "huhehaote"
- },
- "阿左旗": {
- "pinyin": "azuoqi"
- },
- "乌海": {
- "pinyin": "wuhai"
- },
- "临河": {
- "pinyin": "linhe"
- },
- "鄂尔多斯": {
- "pinyin": "eerduosi"
- },
- "包头": {
- "pinyin": "baotou"
- },
- "集宁": {
- "pinyin": "jining"
- },
- "锡林浩特": {
- "pinyin": "xilinhaote"
- },
- "赤峰": {
- "pinyin": "chifeng"
- },
- "通辽": {
- "pinyin": "tongliao"
- },
- "乌兰浩特": {
- "pinyin": "wulanhaote"
- },
- "海拉尔": {
- "pinyin": "hailaer"
- }
- },
- "辽宁": {
- "沈阳": {
- "pinyin": "shenyang"
- },
- "大连": {
- "pinyin": "dalian"
- },
- "葫芦岛": {
- "pinyin": "huludao"
- },
- "朝阳": {
- "pinyin": "chaoyang"
- },
- "营口": {
- "pinyin": "yingkou"
- },
- "锦州": {
- "pinyin": "jinzhou"
- },
- "盘锦": {
- "pinyin": "panjin"
- },
- "阜新": {
- "pinyin": "fuxin"
- },
- "鞍山": {
- "pinyin": "anshan"
- },
- "辽阳": {
- "pinyin": "liaoyang"
- },
- "丹东": {
- "pinyin": "dandong"
- },
- "本溪": {
- "pinyin": "benxi"
- },
- "抚顺": {
- "pinyin": "fushun"
- },
- "铁岭": {
- "pinyin": "tieling"
- }
- },
- "吉林": {
- "长春": {
- "pinyin": "changchun"
- },
- "通化": {
- "pinyin": "tonghua"
- },
- "白山": {
- "pinyin": "baishan"
- },
- "辽源": {
- "pinyin": "liaoyuan"
- },
- "四平": {
- "pinyin": "siping"
- },
- "吉林": {
- "pinyin": "jilin"
- },
- "延吉": {
- "pinyin": "yanji"
- },
- "白城": {
- "pinyin": "baicheng"
- },
- "松原": {
- "pinyin": "songyuan"
- }
- },
- "黑龙江": {
- "哈尔滨": {
- "pinyin": "haerbin"
- },
- "牡丹江": {
- "pinyin": "mudanjiang"
- },
- "大庆": {
- "pinyin": "daqing"
- },
- "齐齐哈尔": {
- "pinyin": "qiqihaer"
- },
- "绥化": {
- "pinyin": "suihua"
- },
- "伊春": {
- "pinyin": "yichun"
- },
- "大兴安岭": {
- "pinyin": "daxinganling"
- },
- "黑河": {
- "pinyin": "heihe"
- },
- "鸡西": {
- "pinyin": "jixi"
- },
- "七台河": {
- "pinyin": "qitaihe"
- },
- "佳木斯": {
- "pinyin": "jiamusi"
- },
- "鹤岗": {
- "pinyin": "hegang"
- },
- "双鸭山": {
- "pinyin": "shuangyashan"
- }
- },
- "上海": {
- "-": {
- "pinyin": "shanghai"
- }
- },
- "江苏": {
- "南京": {
- "pinyin": "nanjing"
- },
- "镇江": {
- "pinyin": "zhenjiang"
- },
- "苏州": {
- "pinyin": "suzhou"
- },
- "无锡": {
- "pinyin": "wuxi"
- },
- "常州": {
- "pinyin": "changzhou"
- },
- "南通": {
- "pinyin": "nantong"
- },
- "扬州": {
- "pinyin": "yangzhou"
- },
- "淮安": {
- "pinyin": "huaian"
- },
- "泰州": {
- "pinyin": "taizhou"
- },
- "盐城": {
- "pinyin": "yancheng"
- },
- "徐州": {
- "pinyin": "xuzhou"
- },
- "宿迁": {
- "pinyin": "suqian"
- },
- "连云港": {
- "pinyin": "lianyungang"
- }
- },
- "浙江": {
- "杭州": {
- "pinyin": "hangzhou"
- },
- "温州": {
- "pinyin": "wenzhou"
- },
- "衢州": {
- "pinyin": "quzhou"
- },
- "丽水": {
- "pinyin": "lishui"
- },
- "金华": {
- "pinyin": "jinhua"
- },
- "绍兴": {
- "pinyin": "shaoxing"
- },
- "湖州": {
- "pinyin": "huzhou"
- },
- "嘉兴": {
- "pinyin": "jiaxing"
- },
- "台州": {
- "pinyin": "taizhou"
- },
- "宁波": {
- "pinyin": "ningbo"
- },
- "舟山": {
- "pinyin": "zhoushan"
- }
- },
- "安徽": {
- "合肥": {
- "pinyin": "hefei"
- },
- "安庆": {
- "pinyin": "anqing"
- },
- "池州": {
- "pinyin": "chizhou"
- },
- "铜陵": {
- "pinyin": "tongling"
- },
- "六安": {
- "pinyin": "luan"
- },
- "阜阳": {
- "pinyin": "fuyang"
- },
- "淮南": {
- "pinyin": "huainan"
- },
- "蚌埠": {
- "pinyin": "bengbu"
- },
- "宿州": {
- "pinyin": "suzhou"
- },
- "黄山": {
- "pinyin": "huangshan"
- },
- "宣城": {
- "pinyin": "xuancheng"
- },
- "芜湖": {
- "pinyin": "wuhu"
- },
- "马鞍山": {
- "pinyin": "maanshan"
- },
- "滁州": {
- "pinyin": "chuzhou"
- },
- "亳州": {
- "pinyin": "bozhou"
- },
- "淮北": {
- "pinyin": "huaibei"
- }
- },
- "福建": {
- "福州": {
- "pinyin": "fuzhou"
- },
- "漳州": {
- "pinyin": "zhangzhou"
- },
- "厦门": {
- "pinyin": "xiamen"
- },
- "龙岩": {
- "pinyin": "longyan"
- },
- "三明": {
- "pinyin": "sanming"
- },
- "泉州": {
- "pinyin": "quanzhou"
- },
- "莆田": {
- "pinyin": "putian"
- },
- "南平": {
- "pinyin": "nanping"
- },
- "宁德": {
- "pinyin": "ningde"
- }
- },
- "江西": {
- "南昌": {
- "pinyin": "nanchang"
- },
- "赣州": {
- "pinyin": "ganzhou"
- },
- "萍乡": {
- "pinyin": "pingxiang"
- },
- "吉安": {
- "pinyin": "jian"
- },
- "宜春": {
- "pinyin": "yichun"
- },
- "新余": {
- "pinyin": "xinyu"
- },
- "抚州": {
- "pinyin": "fuzhou"
- },
- "鹰潭": {
- "pinyin": "yingtan"
- },
- "上饶": {
- "pinyin": "shangrao"
- },
- "景德镇": {
- "pinyin": "jingdezhen"
- },
- "九江": {
- "pinyin": "jiujiang"
- }
- },
- "山东": {
- "济南": {
- "pinyin": "jinan"
- },
- "枣庄": {
- "pinyin": "zaozhuang"
- },
- "菏泽": {
- "pinyin": "heze"
- },
- "济宁": {
- "pinyin": "jining"
- },
- "聊城": {
- "pinyin": "liaocheng"
- },
- "泰安": {
- "pinyin": "taian"
- },
- "莱芜": {
- "pinyin": "laiwu"
- },
- "德州": {
- "pinyin": "dezhou"
- },
- "淄博": {
- "pinyin": "zibo"
- },
- "滨州": {
- "pinyin": "binzhou"
- },
- "临沂": {
- "pinyin": "linyi"
- },
- "日照": {
- "pinyin": "rizhao"
- },
- "青岛": {
- "pinyin": "qingdao"
- },
- "潍坊": {
- "pinyin": "weifang"
- },
- "东营": {
- "pinyin": "dongying"
- },
- "烟台": {
- "pinyin": "yantai"
- },
- "威海": {
- "pinyin": "weihai"
- }
- },
- "河南": {
- "郑州": {
- "pinyin": "zhengzhou"
- },
- "三门峡": {
- "pinyin": "sanmenxia"
- },
- "洛阳": {
- "pinyin": "luoyang"
- },
- "信阳": {
- "pinyin": "xinyang"
- },
- "南阳": {
- "pinyin": "nanyang"
- },
- "驻马店": {
- "pinyin": "zhumadian"
- },
- "漯河": {
- "pinyin": "luohe"
- },
- "周口": {
- "pinyin": "zhoukou"
- },
- "平顶山": {
- "pinyin": "pingdingshan"
- },
- "许昌": {
- "pinyin": "xuchang"
- },
- "济源": {
- "pinyin": "jiyuan"
- },
- "开封": {
- "pinyin": "kaifeng"
- },
- "焦作": {
- "pinyin": "jiaozuo"
- },
- "新乡": {
- "pinyin": "xinxiang"
- },
- "鹤壁": {
- "pinyin": "hebi"
- },
- "濮阳": {
- "pinyin": "puyang"
- },
- "安阳": {
- "pinyin": "anyang"
- },
- "商丘": {
- "pinyin": "shangqiu"
- }
- },
- "湖北": {
- "武汉": {
- "pinyin": "wuhan"
- },
- "恩施": {
- "pinyin": "enshi"
- },
- "宜昌": {
- "pinyin": "yichang"
- },
- "荆州": {
- "pinyin": "jingzhou"
- },
- "神农架": {
- "pinyin": "shennongjia"
- },
- "荆门": {
- "pinyin": "jingmen"
- },
- "襄阳": {
- "pinyin": "xiangyang"
- },
- "十堰": {
- "pinyin": "shiyan"
- },
- "潜江": {
- "pinyin": "qianjiang"
- },
- "天门": {
- "pinyin": "tianmen"
- },
- "仙桃": {
- "pinyin": "xiantao"
- },
- "咸宁": {
- "pinyin": "xianning"
- },
- "黄石": {
- "pinyin": "huangshi"
- },
- "孝感": {
- "pinyin": "xiaogan"
- },
- "鄂州": {
- "pinyin": "ezhou"
- },
- "黄冈": {
- "pinyin": "huanggang"
- },
- "随州": {
- "pinyin": "suizhou"
- }
- },
- "湖南": {
- "长沙": {
- "pinyin": "changsha"
- },
- "永州": {
- "pinyin": "yongzhou"
- },
- "怀化": {
- "pinyin": "huaihua"
- },
- "邵阳": {
- "pinyin": "shaoyang"
- },
- "娄底": {
- "pinyin": "loudi"
- },
- "吉首": {
- "pinyin": "jishou"
- },
- "张家界": {
- "pinyin": "zhangjiajie"
- },
- "益阳": {
- "pinyin": "yiyang"
- },
- "常德": {
- "pinyin": "changde"
- },
- "郴州": {
- "pinyin": "chenzhou"
- },
- "衡阳": {
- "pinyin": "hengyang"
- },
- "湘潭": {
- "pinyin": "xiangtan"
- },
- "株洲": {
- "pinyin": "zhuzhou"
- },
- "岳阳": {
- "pinyin": "yueyang"
- }
- },
- "广东": {
- "广州": {
- "pinyin": "guangzhou"
- },
- "湛江": {
- "pinyin": "zhanjiang"
- },
- "茂名": {
- "pinyin": "maoming"
- },
- "阳江": {
- "pinyin": "yangjiang"
- },
- "珠海": {
- "pinyin": "zhuhai"
- },
- "云浮": {
- "pinyin": "yunfu"
- },
- "肇庆": {
- "pinyin": "zhaoqing"
- },
- "江门": {
- "pinyin": "jiangmen"
- },
- "佛山": {
- "pinyin": "foshan"
- },
- "中山": {
- "pinyin": "zhongshan"
- },
- "东莞": {
- "pinyin": "dongguan"
- },
- "清远": {
- "pinyin": "qingyuan"
- },
- "深圳": {
- "pinyin": "shenzhen"
- },
- "惠州": {
- "pinyin": "huizhou"
- },
- "河源": {
- "pinyin": "heyuan"
- },
- "韶关": {
- "pinyin": "shaoguan"
- },
- "汕尾": {
- "pinyin": "shanwei"
- },
- "汕头": {
- "pinyin": "shantou"
- },
- "揭阳": {
- "pinyin": "jieyang"
- },
- "潮州": {
- "pinyin": "chaozhou"
- },
- "梅州": {
- "pinyin": "meizhou"
- }
- },
- "广西": {
- "南宁": {
- "pinyin": "nanning"
- },
- "崇左": {
- "pinyin": "chongzuo"
- },
- "防城港": {
- "pinyin": "fangchenggang"
- },
- "北海": {
- "pinyin": "beihai"
- },
- "钦州": {
- "pinyin": "qinzhou"
- },
- "百色": {
- "pinyin": "baise"
- },
- "贵港": {
- "pinyin": "guigang"
- },
- "来宾": {
- "pinyin": "laibin"
- },
- "河池": {
- "pinyin": "hechi"
- },
- "柳州": {
- "pinyin": "liuzhou"
- },
- "玉林": {
- "pinyin": "yulin"
- },
- "梧州": {
- "pinyin": "wuzhou"
- },
- "桂林": {
- "pinyin": "guilin"
- },
- "贺州": {
- "pinyin": "hezhou"
- }
- },
- "海南": {
- "海口": {
- "pinyin": "haikou"
- },
- "西沙": {
- "pinyin": "xisha"
- },
- "三亚": {
- "pinyin": "sanya"
- },
- "乐东": {
- "pinyin": "ledong"
- },
- "五指山": {
- "pinyin": "wuzhishan"
- },
- "东方": {
- "pinyin": "dongfang"
- },
- "昌江": {
- "pinyin": "changjiang"
- },
- "白沙": {
- "pinyin": "baisha"
- },
- "儋州": {
- "pinyin": "danzhou"
- },
- "保亭": {
- "pinyin": "baoting"
- },
- "陵水": {
- "pinyin": "lingshui"
- },
- "万宁": {
- "pinyin": "wanning"
- },
- "琼中": {
- "pinyin": "qiongzhong"
- },
- "屯昌": {
- "pinyin": "tunchang"
- },
- "琼海": {
- "pinyin": "qionghai"
- },
- "文昌": {
- "pinyin": "wenchang"
- },
- "临高": {
- "pinyin": "lingao"
- },
- "澄迈": {
- "pinyin": "chengmai"
- },
- "定安": {
- "pinyin": "dingan"
- },
- "南沙": {
- "pinyin": "nansha"
- },
- "中沙": {
- "pinyin": "wuzhishan"
- }
- },
- "重庆": {
- "-": {
- "pinyin": "chongqing"
- }
- },
- "四川": {
- "成都": {
- "pinyin": "chengdu"
- },
- "甘孜": {
- "pinyin": "ganzi"
- },
- "攀枝花": {
- "pinyin": "panzhihua"
- },
- "凉山": {
- "pinyin": "liangshan"
- },
- "雅安": {
- "pinyin": "yaan"
- },
- "乐山": {
- "pinyin": "leshan"
- },
- "眉山": {
- "pinyin": "meishan"
- },
- "宜宾": {
- "pinyin": "yibin"
- },
- "泸州": {
- "pinyin": "luzhou"
- },
- "自贡": {
- "pinyin": "zigong"
- },
- "资阳": {
- "pinyin": "ziyang"
- },
- "内江": {
- "pinyin": "neijiang"
- },
- "遂宁": {
- "pinyin": "suining"
- },
- "南充": {
- "pinyin": "nanchong"
- },
- "广安": {
- "pinyin": "guangan"
- },
- "阿坝": {
- "pinyin": "aba"
- },
- "德阳": {
- "pinyin": "deyang"
- },
- "绵阳": {
- "pinyin": "mianyang"
- },
- "巴中": {
- "pinyin": "bazhong"
- },
- "广元": {
- "pinyin": "guangyuan"
- },
- "达州": {
- "pinyin": "dazhou"
- }
- },
- "贵州": {
- "贵阳": {
- "pinyin": "guiyang"
- },
- "兴义": {
- "pinyin": "xingyi"
- },
- "水城": {
- "pinyin": "shuicheng"
- },
- "安顺": {
- "pinyin": "anshun"
- },
- "毕节": {
- "pinyin": "bijie"
- },
- "都匀": {
- "pinyin": "duyun"
- },
- "凯里": {
- "pinyin": "kaili"
- },
- "遵义": {
- "pinyin": "zunyi"
- },
- "铜仁": {
- "pinyin": "tongren"
- }
- },
- "云南": {
- "昆明": {
- "pinyin": "kunming"
- },
- "景洪": {
- "pinyin": "jinghong"
- },
- "普洱": {
- "pinyin": "puer"
- },
- "临沧": {
- "pinyin": "lincang"
- },
- "德宏": {
- "pinyin": "dehong"
- },
- "保山": {
- "pinyin": "baoshan"
- },
- "怒江": {
- "pinyin": "nujiang"
- },
- "大理": {
- "pinyin": "dali"
- },
- "香格里拉": {
- "pinyin": "xianggelila"
- },
- "丽江": {
- "pinyin": "lijiang"
- },
- "红河": {
- "pinyin": "honghe"
- },
- "玉溪": {
- "pinyin": "yuxi"
- },
- "楚雄": {
- "pinyin": "chuxiong"
- },
- "文山": {
- "pinyin": "wenshan"
- },
- "曲靖": {
- "pinyin": "qujing"
- },
- "昭通": {
- "pinyin": "zhaotong"
- }
- },
- "西藏": {
- "拉萨": {
- "pinyin": "lasa"
- },
- "阿里": {
- "pinyin": "ali"
- },
- "日喀则": {
- "pinyin": "rikaze"
- },
- "山南": {
- "pinyin": "shannan"
- },
- "林芝": {
- "pinyin": "linzhi"
- },
- "那曲": {
- "pinyin": "naqu"
- },
- "昌都": {
- "pinyin": "changdu"
- }
- },
- "陕西": {
- "西安": {
- "pinyin": "xian"
- },
- "汉中": {
- "pinyin": "hanzhong"
- },
- "安康": {
- "pinyin": "ankang"
- },
- "宝鸡": {
- "pinyin": "baoji"
- },
- "杨凌": {
- "pinyin": "yangling"
- },
- "咸阳": {
- "pinyin": "xianyang"
- },
- "铜川": {
- "pinyin": "tongchuan"
- },
- "渭南": {
- "pinyin": "weinan"
- },
- "商洛": {
- "pinyin": "shangluo"
- },
- "延安": {
- "pinyin": "yanan"
- },
- "榆林": {
- "pinyin": "yulin"
- }
- },
- "甘肃": {
- "兰州": {
- "pinyin": "lanzhou"
- },
- "武都": {
- "pinyin": "wudu"
- },
- "张掖": {
- "pinyin": "zhangye"
- },
- "嘉峪关": {
- "pinyin": "jiayuguan"
- },
- "酒泉": {
- "pinyin": "jiuquan"
- },
- "合作": {
- "pinyin": "hezuo"
- },
- "临夏": {
- "pinyin": "linxia"
- },
- "天水": {
- "pinyin": "tianshui"
- },
- "定西": {
- "pinyin": "dingxi"
- },
- "白银": {
- "pinyin": "baiyin"
- },
- "平凉": {
- "pinyin": "pingliang"
- },
- "武威": {
- "pinyin": "wuwei"
- },
- "金昌": {
- "pinyin": "jinchang"
- },
- "庆阳": {
- "pinyin": "qingyang"
- }
- },
- "青海": {
- "西宁": {
- "pinyin": "xining"
- },
- "玉树": {
- "pinyin": "yushu"
- },
- "格尔木": {
- "pinyin": "geermu"
- },
- "果洛": {
- "pinyin": "guoluo"
- },
- "海南": {
- "pinyin": "hainan"
- },
- "海西": {
- "pinyin": "haixi"
- },
- "海北": {
- "pinyin": "haibei"
- },
- "黄南": {
- "pinyin": "huangnan"
- },
- "海东": {
- "pinyin": "haidong"
- }
- },
- "宁夏": {
- "银川": {
- "pinyin": "yinchuan"
- },
- "固原": {
- "pinyin": "guyuan"
- },
- "中卫": {
- "pinyin": "zhongwei"
- },
- "吴忠": {
- "pinyin": "wuzhong"
- },
- "石嘴山": {
- "pinyin": "shizuishan"
- }
- },
- "新疆": {
- "乌鲁木齐": {
- "pinyin": "wulumuqi"
- },
- "喀什": {
- "pinyin": "kashi"
- },
- "阿图什": {
- "pinyin": "atushi"
- },
- "和田": {
- "pinyin": "hetian"
- },
- "阿拉尔": {
- "pinyin": "alaer"
- },
- "阿克苏": {
- "pinyin": "akesu"
- },
- "伊宁": {
- "pinyin": "yining"
- },
- "博乐": {
- "pinyin": "bole"
- },
- "库尔勒": {
- "pinyin": "kuerle"
- },
- "石河子": {
- "pinyin": "shihezi"
- },
- "吐鲁番": {
- "pinyin": "tulufan"
- },
- "昌吉": {
- "pinyin": "changji"
- },
- "五家渠": {
- "pinyin": "wujiaqu"
- },
- "塔城": {
- "pinyin": "tacheng"
- },
- "克拉玛依": {
- "pinyin": "kelamayi"
- },
- "阿勒泰": {
- "pinyin": "aletai"
- },
- "哈密": {
- "pinyin": "hami"
- }
- },
- "香港": {
- "-": {
- "pinyin": "hong kong"
- }
- },
- "澳门": {
- "-": {
- "pinyin": "macao"
- }
- },
- "台湾": {
- "台北": {
- "pinyin": "taipei"
- },
- "高雄": {
- "pinyin": "gaoxiong"
- },
- "台中": {
- "pinyin": "taizhong"
- }
- }
-};
-
var PROVINCES = [], key;
for (key in CITYS_DATA)
PROVINCES.push([key, key]);
@@ -1299,7 +115,11 @@ export const weather_seniverse_city_weather = {
.appendField(Blockly.Msg.MIXLY_API_PRIVATE_KEY);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_LANGUAGE)
- .appendField(new Blockly.FieldDropdown([["简体中文", "zh-Hans"], ["繁體中文", "zh-Hant"], ["English", "en"]]), "language");
+ .appendField(new Blockly.FieldDropdown([
+ ["简体中文", "zh-Hans"],
+ ["繁體中文", "zh-Hant"],
+ ["English", "en"]
+ ]), "language");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_TEMPERATURE_UNIT)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_CELSIUS + "(℃)", "c"], [Blockly.Msg.MIXLY_FAHRENHEIT + "(℉)", "f"]]), "unit");
@@ -1317,8 +137,16 @@ export const weather_get_seniverse_weather_info = {
init: function () {
this.appendDummyInput("")
//.appendField("心知天气")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LIVE_WEATHER, "weather/now"], [Blockly.Msg.MIXLY_3_DAY_WEATHER_FORECAST, "weather/daily"], [Blockly.Msg.MIXLY_6_LIFE_INDEXES, "life/suggestion"]]), "api")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_AVAILABLE, "update"], [Blockly.Msg.MIXLY_GET_DATA_UPDATE_TIME, "getLastUpdate"], [Blockly.Msg.MIXLY_GET_SERVER_RESPONSE_STATUS_CODE, "getServerCode"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_LIVE_WEATHER, "weather/now"],
+ [Blockly.Msg.MIXLY_3_DAY_WEATHER_FORECAST, "weather/daily"],
+ [Blockly.Msg.MIXLY_6_LIFE_INDEXES, "life/suggestion"]
+ ]), "api")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_AVAILABLE, "update"],
+ [Blockly.Msg.MIXLY_GET_DATA_UPDATE_TIME, "getLastUpdate"],
+ [Blockly.Msg.MIXLY_GET_SERVER_RESPONSE_STATUS_CODE, "getServerCode"]
+ ]), "type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(WEATHER_HUE);
diff --git a/boards/default_src/arduino/blocks/text.js b/boards/default_src/arduino/blocks/text.js
index 43fe80b1..f16eea02 100644
--- a/boards/default_src/arduino/blocks/text.js
+++ b/boards/default_src/arduino/blocks/text.js
@@ -2,22 +2,23 @@ import * as Blockly from 'blockly/core';
const TEXTS_HUE = 160;
+
export const text_base64_url_codec = {
init: function () {
- this.appendValueInput("VALUE")
+ this.appendValueInput('VALUE')
.setCheck(null)
.setAlign(Blockly.inputs.Align.LEFT)
.appendField(new Blockly.FieldDropdown([
- ["Base64", "BASE64"],
- ["URL", "URL"]
- ]), "TYPE")
+ ['Base64', 'BASE64'],
+ ['URL', 'URL']
+ ]), 'TYPE')
.appendField(new Blockly.FieldDropdown([
- ["编码", "ENCODE"],
- ["解码", "DECODE"]
- ]), "OPTION");
+ [Blockly.Msg.MIXPY_TEXT_ENCODE, 'ENCODE'],
+ [Blockly.Msg.MIXPY_TEXT_DECODE, 'DECODE']
+ ]), 'OPTION');
this.setOutput(true, null);
this.setColour(TEXTS_HUE);
- this.setTooltip("");
- this.setHelpUrl("");
+ this.setTooltip('');
+ this.setHelpUrl('');
}
};
\ No newline at end of file
diff --git a/boards/default_src/arduino/blocks/variables.js b/boards/default_src/arduino/blocks/variables.js
index 4261e9c5..77c6ca63 100644
--- a/boards/default_src/arduino/blocks/variables.js
+++ b/boards/default_src/arduino/blocks/variables.js
@@ -1,21 +1,21 @@
import * as Blockly from 'blockly/core';
import { Variables } from 'blockly/core';
-
const VARIABLES_HUE = 330;
-// ************************************************************************
-// THIS SECTION IS INSERTED INTO BLOCKLY BY BLOCKLYDUINO.
+
export const variables_declare = {
- // Variable setter.
init: function () {
this.setColour(VARIABLES_HUE);
this.appendValueInput('VALUE', null)
.appendField(Blockly.Msg.MIXLY_DECLARE)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_GLOBAL_VARIABLE, "global_variate"], [Blockly.Msg.MIXLY_LOCAL_VARIABLE, "local_variate"]]), "variables_type")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_GLOBAL_VARIABLE, 'global_variate'],
+ [Blockly.Msg.MIXLY_LOCAL_VARIABLE, 'local_variate']
+ ]), 'variables_type')
.appendField(new Blockly.FieldTextInput('item'), 'VAR')
.appendField(Blockly.Msg.MIXLY_AS)
- .appendField(new Blockly.FieldDropdown(Variables.DATA_TYPE), "TYPE")
+ .appendField(new Blockly.FieldDropdown(Variables.DATA_TYPE), 'TYPE')
.appendField(Blockly.Msg.MIXLY_VALUE);
this.setPreviousStatement(true);
this.setNextStatement(true);
@@ -30,7 +30,6 @@ export const variables_declare = {
}
}
};
-// ************************************************************************
export const variables_get = {
init: function () {
@@ -47,15 +46,7 @@ export const variables_get = {
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
this.setFieldValue(newName, 'VAR');
}
- }/*,
- onchange: function() {
- var varName = Blockly.Arduino.variableDB_.getName(this.getFieldValue('VAR'),Blockly.Variables.NAME_TYPE);
- if(Blockly.Arduino.definitions_['var_declare'+varName]){
- this.setWarningText(null);
- }else{
- this.setWarningText(Blockly.Msg.MIXLY_WARNING_NOT_DECLARE);
- }
- }*/
+ }
};
export const variables_set = {
@@ -77,6 +68,7 @@ export const variables_set = {
}
}
};
+
/**
* Block for basic data type change.
* @this Blockly.Block
@@ -90,8 +82,4 @@ export const variables_change = {
this.setOutput(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_VARIABLES_CHANGE);
}
-};
-
-
-
-
+};
\ No newline at end of file
diff --git a/boards/default_src/arduino/generators/ethernet.js b/boards/default_src/arduino/generators/ethernet.js
index 4d824729..242b275f 100644
--- a/boards/default_src/arduino/generators/ethernet.js
+++ b/boards/default_src/arduino/generators/ethernet.js
@@ -1,5 +1,7 @@
import * as Blockly from 'blockly/core';
import * as Mixly from 'mixly';
+import CITYS_DATA from '../templates/json/cities.json';
+
/**
* @name 模块名 Http GET请求
@@ -105,1192 +107,6 @@ export const http_post = function () {
return code;
};
-const CITYS_DATA = {
- "本地": {
- "-": {
- "pinyin": "ip"
- }
- },
- "北京": {
- "-": {
- "pinyin": "beijing"
- }
- },
- "天津": {
- "-": {
- "pinyin": "tianjin"
- }
- },
- "河北": {
- "石家庄": {
- "pinyin": "shijiazhuang"
- },
- "邯郸": {
- "pinyin": "handan"
- },
- "邢台": {
- "pinyin": "xingtai"
- },
- "衡水": {
- "pinyin": "hengshui"
- },
- "保定": {
- "pinyin": "baoding"
- },
- "沧州": {
- "pinyin": "cangzhou"
- },
- "张家口": {
- "pinyin": "zhangjiakou"
- },
- "廊坊": {
- "pinyin": "langfang"
- },
- "承德": {
- "pinyin": "chengde"
- },
- "唐山": {
- "pinyin": "tangshan"
- },
- "秦皇岛": {
- "pinyin": "qinhuangdao"
- }
- },
- "山西": {
- "太原": {
- "pinyin": "taiyuan"
- },
- "运城": {
- "pinyin": "yuncheng"
- },
- "临汾": {
- "pinyin": "linfen"
- },
- "吕梁": {
- "pinyin": "lvliang"
- },
- "朔州": {
- "pinyin": "shuozhou"
- },
- "晋城": {
- "pinyin": "jincheng"
- },
- "长治": {
- "pinyin": "changzhi"
- },
- "晋中": {
- "pinyin": "jinzhong"
- },
- "阳泉": {
- "pinyin": "yangquan"
- },
- "忻州": {
- "pinyin": "xinzhou"
- },
- "大同": {
- "pinyin": "datong"
- }
- },
- "内蒙古": {
- "呼和浩特": {
- "pinyin": "huhehaote"
- },
- "阿左旗": {
- "pinyin": "azuoqi"
- },
- "乌海": {
- "pinyin": "wuhai"
- },
- "临河": {
- "pinyin": "linhe"
- },
- "鄂尔多斯": {
- "pinyin": "eerduosi"
- },
- "包头": {
- "pinyin": "baotou"
- },
- "集宁": {
- "pinyin": "jining"
- },
- "锡林浩特": {
- "pinyin": "xilinhaote"
- },
- "赤峰": {
- "pinyin": "chifeng"
- },
- "通辽": {
- "pinyin": "tongliao"
- },
- "乌兰浩特": {
- "pinyin": "wulanhaote"
- },
- "海拉尔": {
- "pinyin": "hailaer"
- }
- },
- "辽宁": {
- "沈阳": {
- "pinyin": "shenyang"
- },
- "大连": {
- "pinyin": "dalian"
- },
- "葫芦岛": {
- "pinyin": "huludao"
- },
- "朝阳": {
- "pinyin": "chaoyang"
- },
- "营口": {
- "pinyin": "yingkou"
- },
- "锦州": {
- "pinyin": "jinzhou"
- },
- "盘锦": {
- "pinyin": "panjin"
- },
- "阜新": {
- "pinyin": "fuxin"
- },
- "鞍山": {
- "pinyin": "anshan"
- },
- "辽阳": {
- "pinyin": "liaoyang"
- },
- "丹东": {
- "pinyin": "dandong"
- },
- "本溪": {
- "pinyin": "benxi"
- },
- "抚顺": {
- "pinyin": "fushun"
- },
- "铁岭": {
- "pinyin": "tieling"
- }
- },
- "吉林": {
- "长春": {
- "pinyin": "changchun"
- },
- "通化": {
- "pinyin": "tonghua"
- },
- "白山": {
- "pinyin": "baishan"
- },
- "辽源": {
- "pinyin": "liaoyuan"
- },
- "四平": {
- "pinyin": "siping"
- },
- "吉林": {
- "pinyin": "jilin"
- },
- "延吉": {
- "pinyin": "yanji"
- },
- "白城": {
- "pinyin": "baicheng"
- },
- "松原": {
- "pinyin": "songyuan"
- }
- },
- "黑龙江": {
- "哈尔滨": {
- "pinyin": "haerbin"
- },
- "牡丹江": {
- "pinyin": "mudanjiang"
- },
- "大庆": {
- "pinyin": "daqing"
- },
- "齐齐哈尔": {
- "pinyin": "qiqihaer"
- },
- "绥化": {
- "pinyin": "suihua"
- },
- "伊春": {
- "pinyin": "yichun"
- },
- "大兴安岭": {
- "pinyin": "daxinganling"
- },
- "黑河": {
- "pinyin": "heihe"
- },
- "鸡西": {
- "pinyin": "jixi"
- },
- "七台河": {
- "pinyin": "qitaihe"
- },
- "佳木斯": {
- "pinyin": "jiamusi"
- },
- "鹤岗": {
- "pinyin": "hegang"
- },
- "双鸭山": {
- "pinyin": "shuangyashan"
- }
- },
- "上海": {
- "-": {
- "pinyin": "shanghai"
- }
- },
- "江苏": {
- "南京": {
- "pinyin": "nanjing"
- },
- "镇江": {
- "pinyin": "zhenjiang"
- },
- "苏州": {
- "pinyin": "suzhou"
- },
- "无锡": {
- "pinyin": "wuxi"
- },
- "常州": {
- "pinyin": "changzhou"
- },
- "南通": {
- "pinyin": "nantong"
- },
- "扬州": {
- "pinyin": "yangzhou"
- },
- "淮安": {
- "pinyin": "huaian"
- },
- "泰州": {
- "pinyin": "taizhou"
- },
- "盐城": {
- "pinyin": "yancheng"
- },
- "徐州": {
- "pinyin": "xuzhou"
- },
- "宿迁": {
- "pinyin": "suqian"
- },
- "连云港": {
- "pinyin": "lianyungang"
- }
- },
- "浙江": {
- "杭州": {
- "pinyin": "hangzhou"
- },
- "温州": {
- "pinyin": "wenzhou"
- },
- "衢州": {
- "pinyin": "quzhou"
- },
- "丽水": {
- "pinyin": "lishui"
- },
- "金华": {
- "pinyin": "jinhua"
- },
- "绍兴": {
- "pinyin": "shaoxing"
- },
- "湖州": {
- "pinyin": "huzhou"
- },
- "嘉兴": {
- "pinyin": "jiaxing"
- },
- "台州": {
- "pinyin": "taizhou"
- },
- "宁波": {
- "pinyin": "ningbo"
- },
- "舟山": {
- "pinyin": "zhoushan"
- }
- },
- "安徽": {
- "合肥": {
- "pinyin": "hefei"
- },
- "安庆": {
- "pinyin": "anqing"
- },
- "池州": {
- "pinyin": "chizhou"
- },
- "铜陵": {
- "pinyin": "tongling"
- },
- "六安": {
- "pinyin": "luan"
- },
- "阜阳": {
- "pinyin": "fuyang"
- },
- "淮南": {
- "pinyin": "huainan"
- },
- "蚌埠": {
- "pinyin": "bengbu"
- },
- "宿州": {
- "pinyin": "suzhou"
- },
- "黄山": {
- "pinyin": "huangshan"
- },
- "宣城": {
- "pinyin": "xuancheng"
- },
- "芜湖": {
- "pinyin": "wuhu"
- },
- "马鞍山": {
- "pinyin": "maanshan"
- },
- "滁州": {
- "pinyin": "chuzhou"
- },
- "亳州": {
- "pinyin": "bozhou"
- },
- "淮北": {
- "pinyin": "huaibei"
- }
- },
- "福建": {
- "福州": {
- "pinyin": "fuzhou"
- },
- "漳州": {
- "pinyin": "zhangzhou"
- },
- "厦门": {
- "pinyin": "xiamen"
- },
- "龙岩": {
- "pinyin": "longyan"
- },
- "三明": {
- "pinyin": "sanming"
- },
- "泉州": {
- "pinyin": "quanzhou"
- },
- "莆田": {
- "pinyin": "putian"
- },
- "南平": {
- "pinyin": "nanping"
- },
- "宁德": {
- "pinyin": "ningde"
- }
- },
- "江西": {
- "南昌": {
- "pinyin": "nanchang"
- },
- "赣州": {
- "pinyin": "ganzhou"
- },
- "萍乡": {
- "pinyin": "pingxiang"
- },
- "吉安": {
- "pinyin": "jian"
- },
- "宜春": {
- "pinyin": "yichun"
- },
- "新余": {
- "pinyin": "xinyu"
- },
- "抚州": {
- "pinyin": "fuzhou"
- },
- "鹰潭": {
- "pinyin": "yingtan"
- },
- "上饶": {
- "pinyin": "shangrao"
- },
- "景德镇": {
- "pinyin": "jingdezhen"
- },
- "九江": {
- "pinyin": "jiujiang"
- }
- },
- "山东": {
- "济南": {
- "pinyin": "jinan"
- },
- "枣庄": {
- "pinyin": "zaozhuang"
- },
- "菏泽": {
- "pinyin": "heze"
- },
- "济宁": {
- "pinyin": "jining"
- },
- "聊城": {
- "pinyin": "liaocheng"
- },
- "泰安": {
- "pinyin": "taian"
- },
- "莱芜": {
- "pinyin": "laiwu"
- },
- "德州": {
- "pinyin": "dezhou"
- },
- "淄博": {
- "pinyin": "zibo"
- },
- "滨州": {
- "pinyin": "binzhou"
- },
- "临沂": {
- "pinyin": "linyi"
- },
- "日照": {
- "pinyin": "rizhao"
- },
- "青岛": {
- "pinyin": "qingdao"
- },
- "潍坊": {
- "pinyin": "weifang"
- },
- "东营": {
- "pinyin": "dongying"
- },
- "烟台": {
- "pinyin": "yantai"
- },
- "威海": {
- "pinyin": "weihai"
- }
- },
- "河南": {
- "郑州": {
- "pinyin": "zhengzhou"
- },
- "三门峡": {
- "pinyin": "sanmenxia"
- },
- "洛阳": {
- "pinyin": "luoyang"
- },
- "信阳": {
- "pinyin": "xinyang"
- },
- "南阳": {
- "pinyin": "nanyang"
- },
- "驻马店": {
- "pinyin": "zhumadian"
- },
- "漯河": {
- "pinyin": "luohe"
- },
- "周口": {
- "pinyin": "zhoukou"
- },
- "平顶山": {
- "pinyin": "pingdingshan"
- },
- "许昌": {
- "pinyin": "xuchang"
- },
- "济源": {
- "pinyin": "jiyuan"
- },
- "开封": {
- "pinyin": "kaifeng"
- },
- "焦作": {
- "pinyin": "jiaozuo"
- },
- "新乡": {
- "pinyin": "xinxiang"
- },
- "鹤壁": {
- "pinyin": "hebi"
- },
- "濮阳": {
- "pinyin": "puyang"
- },
- "安阳": {
- "pinyin": "anyang"
- },
- "商丘": {
- "pinyin": "shangqiu"
- }
- },
- "湖北": {
- "武汉": {
- "pinyin": "wuhan"
- },
- "恩施": {
- "pinyin": "enshi"
- },
- "宜昌": {
- "pinyin": "yichang"
- },
- "荆州": {
- "pinyin": "jingzhou"
- },
- "神农架": {
- "pinyin": "shennongjia"
- },
- "荆门": {
- "pinyin": "jingmen"
- },
- "襄阳": {
- "pinyin": "xiangyang"
- },
- "十堰": {
- "pinyin": "shiyan"
- },
- "潜江": {
- "pinyin": "qianjiang"
- },
- "天门": {
- "pinyin": "tianmen"
- },
- "仙桃": {
- "pinyin": "xiantao"
- },
- "咸宁": {
- "pinyin": "xianning"
- },
- "黄石": {
- "pinyin": "huangshi"
- },
- "孝感": {
- "pinyin": "xiaogan"
- },
- "鄂州": {
- "pinyin": "ezhou"
- },
- "黄冈": {
- "pinyin": "huanggang"
- },
- "随州": {
- "pinyin": "suizhou"
- }
- },
- "湖南": {
- "长沙": {
- "pinyin": "changsha"
- },
- "永州": {
- "pinyin": "yongzhou"
- },
- "怀化": {
- "pinyin": "huaihua"
- },
- "邵阳": {
- "pinyin": "shaoyang"
- },
- "娄底": {
- "pinyin": "loudi"
- },
- "吉首": {
- "pinyin": "jishou"
- },
- "张家界": {
- "pinyin": "zhangjiajie"
- },
- "益阳": {
- "pinyin": "yiyang"
- },
- "常德": {
- "pinyin": "changde"
- },
- "郴州": {
- "pinyin": "chenzhou"
- },
- "衡阳": {
- "pinyin": "hengyang"
- },
- "湘潭": {
- "pinyin": "xiangtan"
- },
- "株洲": {
- "pinyin": "zhuzhou"
- },
- "岳阳": {
- "pinyin": "yueyang"
- }
- },
- "广东": {
- "广州": {
- "pinyin": "guangzhou"
- },
- "湛江": {
- "pinyin": "zhanjiang"
- },
- "茂名": {
- "pinyin": "maoming"
- },
- "阳江": {
- "pinyin": "yangjiang"
- },
- "珠海": {
- "pinyin": "zhuhai"
- },
- "云浮": {
- "pinyin": "yunfu"
- },
- "肇庆": {
- "pinyin": "zhaoqing"
- },
- "江门": {
- "pinyin": "jiangmen"
- },
- "佛山": {
- "pinyin": "foshan"
- },
- "中山": {
- "pinyin": "zhongshan"
- },
- "东莞": {
- "pinyin": "dongguan"
- },
- "清远": {
- "pinyin": "qingyuan"
- },
- "深圳": {
- "pinyin": "shenzhen"
- },
- "惠州": {
- "pinyin": "huizhou"
- },
- "河源": {
- "pinyin": "heyuan"
- },
- "韶关": {
- "pinyin": "shaoguan"
- },
- "汕尾": {
- "pinyin": "shanwei"
- },
- "汕头": {
- "pinyin": "shantou"
- },
- "揭阳": {
- "pinyin": "jieyang"
- },
- "潮州": {
- "pinyin": "chaozhou"
- },
- "梅州": {
- "pinyin": "meizhou"
- }
- },
- "广西": {
- "南宁": {
- "pinyin": "nanning"
- },
- "崇左": {
- "pinyin": "chongzuo"
- },
- "防城港": {
- "pinyin": "fangchenggang"
- },
- "北海": {
- "pinyin": "beihai"
- },
- "钦州": {
- "pinyin": "qinzhou"
- },
- "百色": {
- "pinyin": "baise"
- },
- "贵港": {
- "pinyin": "guigang"
- },
- "来宾": {
- "pinyin": "laibin"
- },
- "河池": {
- "pinyin": "hechi"
- },
- "柳州": {
- "pinyin": "liuzhou"
- },
- "玉林": {
- "pinyin": "yulin"
- },
- "梧州": {
- "pinyin": "wuzhou"
- },
- "桂林": {
- "pinyin": "guilin"
- },
- "贺州": {
- "pinyin": "hezhou"
- }
- },
- "海南": {
- "海口": {
- "pinyin": "haikou"
- },
- "西沙": {
- "pinyin": "xisha"
- },
- "三亚": {
- "pinyin": "sanya"
- },
- "乐东": {
- "pinyin": "ledong"
- },
- "五指山": {
- "pinyin": "wuzhishan"
- },
- "东方": {
- "pinyin": "dongfang"
- },
- "昌江": {
- "pinyin": "changjiang"
- },
- "白沙": {
- "pinyin": "baisha"
- },
- "儋州": {
- "pinyin": "danzhou"
- },
- "保亭": {
- "pinyin": "baoting"
- },
- "陵水": {
- "pinyin": "lingshui"
- },
- "万宁": {
- "pinyin": "wanning"
- },
- "琼中": {
- "pinyin": "qiongzhong"
- },
- "屯昌": {
- "pinyin": "tunchang"
- },
- "琼海": {
- "pinyin": "qionghai"
- },
- "文昌": {
- "pinyin": "wenchang"
- },
- "临高": {
- "pinyin": "lingao"
- },
- "澄迈": {
- "pinyin": "chengmai"
- },
- "定安": {
- "pinyin": "dingan"
- },
- "南沙": {
- "pinyin": "nansha"
- },
- "中沙": {
- "pinyin": "wuzhishan"
- }
- },
- "重庆": {
- "-": {
- "pinyin": "chongqing"
- }
- },
- "四川": {
- "成都": {
- "pinyin": "chengdu"
- },
- "甘孜": {
- "pinyin": "ganzi"
- },
- "攀枝花": {
- "pinyin": "panzhihua"
- },
- "凉山": {
- "pinyin": "liangshan"
- },
- "雅安": {
- "pinyin": "yaan"
- },
- "乐山": {
- "pinyin": "leshan"
- },
- "眉山": {
- "pinyin": "meishan"
- },
- "宜宾": {
- "pinyin": "yibin"
- },
- "泸州": {
- "pinyin": "luzhou"
- },
- "自贡": {
- "pinyin": "zigong"
- },
- "资阳": {
- "pinyin": "ziyang"
- },
- "内江": {
- "pinyin": "neijiang"
- },
- "遂宁": {
- "pinyin": "suining"
- },
- "南充": {
- "pinyin": "nanchong"
- },
- "广安": {
- "pinyin": "guangan"
- },
- "阿坝": {
- "pinyin": "aba"
- },
- "德阳": {
- "pinyin": "deyang"
- },
- "绵阳": {
- "pinyin": "mianyang"
- },
- "巴中": {
- "pinyin": "bazhong"
- },
- "广元": {
- "pinyin": "guangyuan"
- },
- "达州": {
- "pinyin": "dazhou"
- }
- },
- "贵州": {
- "贵阳": {
- "pinyin": "guiyang"
- },
- "兴义": {
- "pinyin": "xingyi"
- },
- "水城": {
- "pinyin": "shuicheng"
- },
- "安顺": {
- "pinyin": "anshun"
- },
- "毕节": {
- "pinyin": "bijie"
- },
- "都匀": {
- "pinyin": "duyun"
- },
- "凯里": {
- "pinyin": "kaili"
- },
- "遵义": {
- "pinyin": "zunyi"
- },
- "铜仁": {
- "pinyin": "tongren"
- }
- },
- "云南": {
- "昆明": {
- "pinyin": "kunming"
- },
- "景洪": {
- "pinyin": "jinghong"
- },
- "普洱": {
- "pinyin": "puer"
- },
- "临沧": {
- "pinyin": "lincang"
- },
- "德宏": {
- "pinyin": "dehong"
- },
- "保山": {
- "pinyin": "baoshan"
- },
- "怒江": {
- "pinyin": "nujiang"
- },
- "大理": {
- "pinyin": "dali"
- },
- "香格里拉": {
- "pinyin": "xianggelila"
- },
- "丽江": {
- "pinyin": "lijiang"
- },
- "红河": {
- "pinyin": "honghe"
- },
- "玉溪": {
- "pinyin": "yuxi"
- },
- "楚雄": {
- "pinyin": "chuxiong"
- },
- "文山": {
- "pinyin": "wenshan"
- },
- "曲靖": {
- "pinyin": "qujing"
- },
- "昭通": {
- "pinyin": "zhaotong"
- }
- },
- "西藏": {
- "拉萨": {
- "pinyin": "lasa"
- },
- "阿里": {
- "pinyin": "ali"
- },
- "日喀则": {
- "pinyin": "rikaze"
- },
- "山南": {
- "pinyin": "shannan"
- },
- "林芝": {
- "pinyin": "linzhi"
- },
- "那曲": {
- "pinyin": "naqu"
- },
- "昌都": {
- "pinyin": "changdu"
- }
- },
- "陕西": {
- "西安": {
- "pinyin": "xian"
- },
- "汉中": {
- "pinyin": "hanzhong"
- },
- "安康": {
- "pinyin": "ankang"
- },
- "宝鸡": {
- "pinyin": "baoji"
- },
- "杨凌": {
- "pinyin": "yangling"
- },
- "咸阳": {
- "pinyin": "xianyang"
- },
- "铜川": {
- "pinyin": "tongchuan"
- },
- "渭南": {
- "pinyin": "weinan"
- },
- "商洛": {
- "pinyin": "shangluo"
- },
- "延安": {
- "pinyin": "yanan"
- },
- "榆林": {
- "pinyin": "yulin"
- }
- },
- "甘肃": {
- "兰州": {
- "pinyin": "lanzhou"
- },
- "武都": {
- "pinyin": "wudu"
- },
- "张掖": {
- "pinyin": "zhangye"
- },
- "嘉峪关": {
- "pinyin": "jiayuguan"
- },
- "酒泉": {
- "pinyin": "jiuquan"
- },
- "合作": {
- "pinyin": "hezuo"
- },
- "临夏": {
- "pinyin": "linxia"
- },
- "天水": {
- "pinyin": "tianshui"
- },
- "定西": {
- "pinyin": "dingxi"
- },
- "白银": {
- "pinyin": "baiyin"
- },
- "平凉": {
- "pinyin": "pingliang"
- },
- "武威": {
- "pinyin": "wuwei"
- },
- "金昌": {
- "pinyin": "jinchang"
- },
- "庆阳": {
- "pinyin": "qingyang"
- }
- },
- "青海": {
- "西宁": {
- "pinyin": "xining"
- },
- "玉树": {
- "pinyin": "yushu"
- },
- "格尔木": {
- "pinyin": "geermu"
- },
- "果洛": {
- "pinyin": "guoluo"
- },
- "海南": {
- "pinyin": "hainan"
- },
- "海西": {
- "pinyin": "haixi"
- },
- "海北": {
- "pinyin": "haibei"
- },
- "黄南": {
- "pinyin": "huangnan"
- },
- "海东": {
- "pinyin": "haidong"
- }
- },
- "宁夏": {
- "银川": {
- "pinyin": "yinchuan"
- },
- "固原": {
- "pinyin": "guyuan"
- },
- "中卫": {
- "pinyin": "zhongwei"
- },
- "吴忠": {
- "pinyin": "wuzhong"
- },
- "石嘴山": {
- "pinyin": "shizuishan"
- }
- },
- "新疆": {
- "乌鲁木齐": {
- "pinyin": "wulumuqi"
- },
- "喀什": {
- "pinyin": "kashi"
- },
- "阿图什": {
- "pinyin": "atushi"
- },
- "和田": {
- "pinyin": "hetian"
- },
- "阿拉尔": {
- "pinyin": "alaer"
- },
- "阿克苏": {
- "pinyin": "akesu"
- },
- "伊宁": {
- "pinyin": "yining"
- },
- "博乐": {
- "pinyin": "bole"
- },
- "库尔勒": {
- "pinyin": "kuerle"
- },
- "石河子": {
- "pinyin": "shihezi"
- },
- "吐鲁番": {
- "pinyin": "tulufan"
- },
- "昌吉": {
- "pinyin": "changji"
- },
- "五家渠": {
- "pinyin": "wujiaqu"
- },
- "塔城": {
- "pinyin": "tacheng"
- },
- "克拉玛依": {
- "pinyin": "kelamayi"
- },
- "阿勒泰": {
- "pinyin": "aletai"
- },
- "哈密": {
- "pinyin": "hami"
- }
- },
- "香港": {
- "-": {
- "pinyin": "hong kong"
- }
- },
- "澳门": {
- "-": {
- "pinyin": "macao"
- }
- },
- "台湾": {
- "台北": {
- "pinyin": "taipei"
- },
- "高雄": {
- "pinyin": "gaoxiong"
- },
- "台中": {
- "pinyin": "taizhong"
- }
- }
-};
-
//网络天气
export const china_city = function () {
var a = this.getFieldValue("province");
diff --git a/boards/default_src/arduino/templates/json/cities.json b/boards/default_src/arduino/templates/json/cities.json
new file mode 100644
index 00000000..5206fa72
--- /dev/null
+++ b/boards/default_src/arduino/templates/json/cities.json
@@ -0,0 +1,1185 @@
+{
+ "本地": {
+ "-": {
+ "pinyin": "ip"
+ }
+ },
+ "北京": {
+ "-": {
+ "pinyin": "beijing"
+ }
+ },
+ "天津": {
+ "-": {
+ "pinyin": "tianjin"
+ }
+ },
+ "河北": {
+ "石家庄": {
+ "pinyin": "shijiazhuang"
+ },
+ "邯郸": {
+ "pinyin": "handan"
+ },
+ "邢台": {
+ "pinyin": "xingtai"
+ },
+ "衡水": {
+ "pinyin": "hengshui"
+ },
+ "保定": {
+ "pinyin": "baoding"
+ },
+ "沧州": {
+ "pinyin": "cangzhou"
+ },
+ "张家口": {
+ "pinyin": "zhangjiakou"
+ },
+ "廊坊": {
+ "pinyin": "langfang"
+ },
+ "承德": {
+ "pinyin": "chengde"
+ },
+ "唐山": {
+ "pinyin": "tangshan"
+ },
+ "秦皇岛": {
+ "pinyin": "qinhuangdao"
+ }
+ },
+ "山西": {
+ "太原": {
+ "pinyin": "taiyuan"
+ },
+ "运城": {
+ "pinyin": "yuncheng"
+ },
+ "临汾": {
+ "pinyin": "linfen"
+ },
+ "吕梁": {
+ "pinyin": "lvliang"
+ },
+ "朔州": {
+ "pinyin": "shuozhou"
+ },
+ "晋城": {
+ "pinyin": "jincheng"
+ },
+ "长治": {
+ "pinyin": "changzhi"
+ },
+ "晋中": {
+ "pinyin": "jinzhong"
+ },
+ "阳泉": {
+ "pinyin": "yangquan"
+ },
+ "忻州": {
+ "pinyin": "xinzhou"
+ },
+ "大同": {
+ "pinyin": "datong"
+ }
+ },
+ "内蒙古": {
+ "呼和浩特": {
+ "pinyin": "huhehaote"
+ },
+ "阿左旗": {
+ "pinyin": "azuoqi"
+ },
+ "乌海": {
+ "pinyin": "wuhai"
+ },
+ "临河": {
+ "pinyin": "linhe"
+ },
+ "鄂尔多斯": {
+ "pinyin": "eerduosi"
+ },
+ "包头": {
+ "pinyin": "baotou"
+ },
+ "集宁": {
+ "pinyin": "jining"
+ },
+ "锡林浩特": {
+ "pinyin": "xilinhaote"
+ },
+ "赤峰": {
+ "pinyin": "chifeng"
+ },
+ "通辽": {
+ "pinyin": "tongliao"
+ },
+ "乌兰浩特": {
+ "pinyin": "wulanhaote"
+ },
+ "海拉尔": {
+ "pinyin": "hailaer"
+ }
+ },
+ "辽宁": {
+ "沈阳": {
+ "pinyin": "shenyang"
+ },
+ "大连": {
+ "pinyin": "dalian"
+ },
+ "葫芦岛": {
+ "pinyin": "huludao"
+ },
+ "朝阳": {
+ "pinyin": "chaoyang"
+ },
+ "营口": {
+ "pinyin": "yingkou"
+ },
+ "锦州": {
+ "pinyin": "jinzhou"
+ },
+ "盘锦": {
+ "pinyin": "panjin"
+ },
+ "阜新": {
+ "pinyin": "fuxin"
+ },
+ "鞍山": {
+ "pinyin": "anshan"
+ },
+ "辽阳": {
+ "pinyin": "liaoyang"
+ },
+ "丹东": {
+ "pinyin": "dandong"
+ },
+ "本溪": {
+ "pinyin": "benxi"
+ },
+ "抚顺": {
+ "pinyin": "fushun"
+ },
+ "铁岭": {
+ "pinyin": "tieling"
+ }
+ },
+ "吉林": {
+ "长春": {
+ "pinyin": "changchun"
+ },
+ "通化": {
+ "pinyin": "tonghua"
+ },
+ "白山": {
+ "pinyin": "baishan"
+ },
+ "辽源": {
+ "pinyin": "liaoyuan"
+ },
+ "四平": {
+ "pinyin": "siping"
+ },
+ "吉林": {
+ "pinyin": "jilin"
+ },
+ "延吉": {
+ "pinyin": "yanji"
+ },
+ "白城": {
+ "pinyin": "baicheng"
+ },
+ "松原": {
+ "pinyin": "songyuan"
+ }
+ },
+ "黑龙江": {
+ "哈尔滨": {
+ "pinyin": "haerbin"
+ },
+ "牡丹江": {
+ "pinyin": "mudanjiang"
+ },
+ "大庆": {
+ "pinyin": "daqing"
+ },
+ "齐齐哈尔": {
+ "pinyin": "qiqihaer"
+ },
+ "绥化": {
+ "pinyin": "suihua"
+ },
+ "伊春": {
+ "pinyin": "yichun"
+ },
+ "大兴安岭": {
+ "pinyin": "daxinganling"
+ },
+ "黑河": {
+ "pinyin": "heihe"
+ },
+ "鸡西": {
+ "pinyin": "jixi"
+ },
+ "七台河": {
+ "pinyin": "qitaihe"
+ },
+ "佳木斯": {
+ "pinyin": "jiamusi"
+ },
+ "鹤岗": {
+ "pinyin": "hegang"
+ },
+ "双鸭山": {
+ "pinyin": "shuangyashan"
+ }
+ },
+ "上海": {
+ "-": {
+ "pinyin": "shanghai"
+ }
+ },
+ "江苏": {
+ "南京": {
+ "pinyin": "nanjing"
+ },
+ "镇江": {
+ "pinyin": "zhenjiang"
+ },
+ "苏州": {
+ "pinyin": "suzhou"
+ },
+ "无锡": {
+ "pinyin": "wuxi"
+ },
+ "常州": {
+ "pinyin": "changzhou"
+ },
+ "南通": {
+ "pinyin": "nantong"
+ },
+ "扬州": {
+ "pinyin": "yangzhou"
+ },
+ "淮安": {
+ "pinyin": "huaian"
+ },
+ "泰州": {
+ "pinyin": "taizhou"
+ },
+ "盐城": {
+ "pinyin": "yancheng"
+ },
+ "徐州": {
+ "pinyin": "xuzhou"
+ },
+ "宿迁": {
+ "pinyin": "suqian"
+ },
+ "连云港": {
+ "pinyin": "lianyungang"
+ }
+ },
+ "浙江": {
+ "杭州": {
+ "pinyin": "hangzhou"
+ },
+ "温州": {
+ "pinyin": "wenzhou"
+ },
+ "衢州": {
+ "pinyin": "quzhou"
+ },
+ "丽水": {
+ "pinyin": "lishui"
+ },
+ "金华": {
+ "pinyin": "jinhua"
+ },
+ "绍兴": {
+ "pinyin": "shaoxing"
+ },
+ "湖州": {
+ "pinyin": "huzhou"
+ },
+ "嘉兴": {
+ "pinyin": "jiaxing"
+ },
+ "台州": {
+ "pinyin": "taizhou"
+ },
+ "宁波": {
+ "pinyin": "ningbo"
+ },
+ "舟山": {
+ "pinyin": "zhoushan"
+ }
+ },
+ "安徽": {
+ "合肥": {
+ "pinyin": "hefei"
+ },
+ "安庆": {
+ "pinyin": "anqing"
+ },
+ "池州": {
+ "pinyin": "chizhou"
+ },
+ "铜陵": {
+ "pinyin": "tongling"
+ },
+ "六安": {
+ "pinyin": "luan"
+ },
+ "阜阳": {
+ "pinyin": "fuyang"
+ },
+ "淮南": {
+ "pinyin": "huainan"
+ },
+ "蚌埠": {
+ "pinyin": "bengbu"
+ },
+ "宿州": {
+ "pinyin": "suzhou"
+ },
+ "黄山": {
+ "pinyin": "huangshan"
+ },
+ "宣城": {
+ "pinyin": "xuancheng"
+ },
+ "芜湖": {
+ "pinyin": "wuhu"
+ },
+ "马鞍山": {
+ "pinyin": "maanshan"
+ },
+ "滁州": {
+ "pinyin": "chuzhou"
+ },
+ "亳州": {
+ "pinyin": "bozhou"
+ },
+ "淮北": {
+ "pinyin": "huaibei"
+ }
+ },
+ "福建": {
+ "福州": {
+ "pinyin": "fuzhou"
+ },
+ "漳州": {
+ "pinyin": "zhangzhou"
+ },
+ "厦门": {
+ "pinyin": "xiamen"
+ },
+ "龙岩": {
+ "pinyin": "longyan"
+ },
+ "三明": {
+ "pinyin": "sanming"
+ },
+ "泉州": {
+ "pinyin": "quanzhou"
+ },
+ "莆田": {
+ "pinyin": "putian"
+ },
+ "南平": {
+ "pinyin": "nanping"
+ },
+ "宁德": {
+ "pinyin": "ningde"
+ }
+ },
+ "江西": {
+ "南昌": {
+ "pinyin": "nanchang"
+ },
+ "赣州": {
+ "pinyin": "ganzhou"
+ },
+ "萍乡": {
+ "pinyin": "pingxiang"
+ },
+ "吉安": {
+ "pinyin": "jian"
+ },
+ "宜春": {
+ "pinyin": "yichun"
+ },
+ "新余": {
+ "pinyin": "xinyu"
+ },
+ "抚州": {
+ "pinyin": "fuzhou"
+ },
+ "鹰潭": {
+ "pinyin": "yingtan"
+ },
+ "上饶": {
+ "pinyin": "shangrao"
+ },
+ "景德镇": {
+ "pinyin": "jingdezhen"
+ },
+ "九江": {
+ "pinyin": "jiujiang"
+ }
+ },
+ "山东": {
+ "济南": {
+ "pinyin": "jinan"
+ },
+ "枣庄": {
+ "pinyin": "zaozhuang"
+ },
+ "菏泽": {
+ "pinyin": "heze"
+ },
+ "济宁": {
+ "pinyin": "jining"
+ },
+ "聊城": {
+ "pinyin": "liaocheng"
+ },
+ "泰安": {
+ "pinyin": "taian"
+ },
+ "莱芜": {
+ "pinyin": "laiwu"
+ },
+ "德州": {
+ "pinyin": "dezhou"
+ },
+ "淄博": {
+ "pinyin": "zibo"
+ },
+ "滨州": {
+ "pinyin": "binzhou"
+ },
+ "临沂": {
+ "pinyin": "linyi"
+ },
+ "日照": {
+ "pinyin": "rizhao"
+ },
+ "青岛": {
+ "pinyin": "qingdao"
+ },
+ "潍坊": {
+ "pinyin": "weifang"
+ },
+ "东营": {
+ "pinyin": "dongying"
+ },
+ "烟台": {
+ "pinyin": "yantai"
+ },
+ "威海": {
+ "pinyin": "weihai"
+ }
+ },
+ "河南": {
+ "郑州": {
+ "pinyin": "zhengzhou"
+ },
+ "三门峡": {
+ "pinyin": "sanmenxia"
+ },
+ "洛阳": {
+ "pinyin": "luoyang"
+ },
+ "信阳": {
+ "pinyin": "xinyang"
+ },
+ "南阳": {
+ "pinyin": "nanyang"
+ },
+ "驻马店": {
+ "pinyin": "zhumadian"
+ },
+ "漯河": {
+ "pinyin": "luohe"
+ },
+ "周口": {
+ "pinyin": "zhoukou"
+ },
+ "平顶山": {
+ "pinyin": "pingdingshan"
+ },
+ "许昌": {
+ "pinyin": "xuchang"
+ },
+ "济源": {
+ "pinyin": "jiyuan"
+ },
+ "开封": {
+ "pinyin": "kaifeng"
+ },
+ "焦作": {
+ "pinyin": "jiaozuo"
+ },
+ "新乡": {
+ "pinyin": "xinxiang"
+ },
+ "鹤壁": {
+ "pinyin": "hebi"
+ },
+ "濮阳": {
+ "pinyin": "puyang"
+ },
+ "安阳": {
+ "pinyin": "anyang"
+ },
+ "商丘": {
+ "pinyin": "shangqiu"
+ }
+ },
+ "湖北": {
+ "武汉": {
+ "pinyin": "wuhan"
+ },
+ "恩施": {
+ "pinyin": "enshi"
+ },
+ "宜昌": {
+ "pinyin": "yichang"
+ },
+ "荆州": {
+ "pinyin": "jingzhou"
+ },
+ "神农架": {
+ "pinyin": "shennongjia"
+ },
+ "荆门": {
+ "pinyin": "jingmen"
+ },
+ "襄阳": {
+ "pinyin": "xiangyang"
+ },
+ "十堰": {
+ "pinyin": "shiyan"
+ },
+ "潜江": {
+ "pinyin": "qianjiang"
+ },
+ "天门": {
+ "pinyin": "tianmen"
+ },
+ "仙桃": {
+ "pinyin": "xiantao"
+ },
+ "咸宁": {
+ "pinyin": "xianning"
+ },
+ "黄石": {
+ "pinyin": "huangshi"
+ },
+ "孝感": {
+ "pinyin": "xiaogan"
+ },
+ "鄂州": {
+ "pinyin": "ezhou"
+ },
+ "黄冈": {
+ "pinyin": "huanggang"
+ },
+ "随州": {
+ "pinyin": "suizhou"
+ }
+ },
+ "湖南": {
+ "长沙": {
+ "pinyin": "changsha"
+ },
+ "永州": {
+ "pinyin": "yongzhou"
+ },
+ "怀化": {
+ "pinyin": "huaihua"
+ },
+ "邵阳": {
+ "pinyin": "shaoyang"
+ },
+ "娄底": {
+ "pinyin": "loudi"
+ },
+ "吉首": {
+ "pinyin": "jishou"
+ },
+ "张家界": {
+ "pinyin": "zhangjiajie"
+ },
+ "益阳": {
+ "pinyin": "yiyang"
+ },
+ "常德": {
+ "pinyin": "changde"
+ },
+ "郴州": {
+ "pinyin": "chenzhou"
+ },
+ "衡阳": {
+ "pinyin": "hengyang"
+ },
+ "湘潭": {
+ "pinyin": "xiangtan"
+ },
+ "株洲": {
+ "pinyin": "zhuzhou"
+ },
+ "岳阳": {
+ "pinyin": "yueyang"
+ }
+ },
+ "广东": {
+ "广州": {
+ "pinyin": "guangzhou"
+ },
+ "湛江": {
+ "pinyin": "zhanjiang"
+ },
+ "茂名": {
+ "pinyin": "maoming"
+ },
+ "阳江": {
+ "pinyin": "yangjiang"
+ },
+ "珠海": {
+ "pinyin": "zhuhai"
+ },
+ "云浮": {
+ "pinyin": "yunfu"
+ },
+ "肇庆": {
+ "pinyin": "zhaoqing"
+ },
+ "江门": {
+ "pinyin": "jiangmen"
+ },
+ "佛山": {
+ "pinyin": "foshan"
+ },
+ "中山": {
+ "pinyin": "zhongshan"
+ },
+ "东莞": {
+ "pinyin": "dongguan"
+ },
+ "清远": {
+ "pinyin": "qingyuan"
+ },
+ "深圳": {
+ "pinyin": "shenzhen"
+ },
+ "惠州": {
+ "pinyin": "huizhou"
+ },
+ "河源": {
+ "pinyin": "heyuan"
+ },
+ "韶关": {
+ "pinyin": "shaoguan"
+ },
+ "汕尾": {
+ "pinyin": "shanwei"
+ },
+ "汕头": {
+ "pinyin": "shantou"
+ },
+ "揭阳": {
+ "pinyin": "jieyang"
+ },
+ "潮州": {
+ "pinyin": "chaozhou"
+ },
+ "梅州": {
+ "pinyin": "meizhou"
+ }
+ },
+ "广西": {
+ "南宁": {
+ "pinyin": "nanning"
+ },
+ "崇左": {
+ "pinyin": "chongzuo"
+ },
+ "防城港": {
+ "pinyin": "fangchenggang"
+ },
+ "北海": {
+ "pinyin": "beihai"
+ },
+ "钦州": {
+ "pinyin": "qinzhou"
+ },
+ "百色": {
+ "pinyin": "baise"
+ },
+ "贵港": {
+ "pinyin": "guigang"
+ },
+ "来宾": {
+ "pinyin": "laibin"
+ },
+ "河池": {
+ "pinyin": "hechi"
+ },
+ "柳州": {
+ "pinyin": "liuzhou"
+ },
+ "玉林": {
+ "pinyin": "yulin"
+ },
+ "梧州": {
+ "pinyin": "wuzhou"
+ },
+ "桂林": {
+ "pinyin": "guilin"
+ },
+ "贺州": {
+ "pinyin": "hezhou"
+ }
+ },
+ "海南": {
+ "海口": {
+ "pinyin": "haikou"
+ },
+ "西沙": {
+ "pinyin": "xisha"
+ },
+ "三亚": {
+ "pinyin": "sanya"
+ },
+ "乐东": {
+ "pinyin": "ledong"
+ },
+ "五指山": {
+ "pinyin": "wuzhishan"
+ },
+ "东方": {
+ "pinyin": "dongfang"
+ },
+ "昌江": {
+ "pinyin": "changjiang"
+ },
+ "白沙": {
+ "pinyin": "baisha"
+ },
+ "儋州": {
+ "pinyin": "danzhou"
+ },
+ "保亭": {
+ "pinyin": "baoting"
+ },
+ "陵水": {
+ "pinyin": "lingshui"
+ },
+ "万宁": {
+ "pinyin": "wanning"
+ },
+ "琼中": {
+ "pinyin": "qiongzhong"
+ },
+ "屯昌": {
+ "pinyin": "tunchang"
+ },
+ "琼海": {
+ "pinyin": "qionghai"
+ },
+ "文昌": {
+ "pinyin": "wenchang"
+ },
+ "临高": {
+ "pinyin": "lingao"
+ },
+ "澄迈": {
+ "pinyin": "chengmai"
+ },
+ "定安": {
+ "pinyin": "dingan"
+ },
+ "南沙": {
+ "pinyin": "nansha"
+ },
+ "中沙": {
+ "pinyin": "wuzhishan"
+ }
+ },
+ "重庆": {
+ "-": {
+ "pinyin": "chongqing"
+ }
+ },
+ "四川": {
+ "成都": {
+ "pinyin": "chengdu"
+ },
+ "甘孜": {
+ "pinyin": "ganzi"
+ },
+ "攀枝花": {
+ "pinyin": "panzhihua"
+ },
+ "凉山": {
+ "pinyin": "liangshan"
+ },
+ "雅安": {
+ "pinyin": "yaan"
+ },
+ "乐山": {
+ "pinyin": "leshan"
+ },
+ "眉山": {
+ "pinyin": "meishan"
+ },
+ "宜宾": {
+ "pinyin": "yibin"
+ },
+ "泸州": {
+ "pinyin": "luzhou"
+ },
+ "自贡": {
+ "pinyin": "zigong"
+ },
+ "资阳": {
+ "pinyin": "ziyang"
+ },
+ "内江": {
+ "pinyin": "neijiang"
+ },
+ "遂宁": {
+ "pinyin": "suining"
+ },
+ "南充": {
+ "pinyin": "nanchong"
+ },
+ "广安": {
+ "pinyin": "guangan"
+ },
+ "阿坝": {
+ "pinyin": "aba"
+ },
+ "德阳": {
+ "pinyin": "deyang"
+ },
+ "绵阳": {
+ "pinyin": "mianyang"
+ },
+ "巴中": {
+ "pinyin": "bazhong"
+ },
+ "广元": {
+ "pinyin": "guangyuan"
+ },
+ "达州": {
+ "pinyin": "dazhou"
+ }
+ },
+ "贵州": {
+ "贵阳": {
+ "pinyin": "guiyang"
+ },
+ "兴义": {
+ "pinyin": "xingyi"
+ },
+ "水城": {
+ "pinyin": "shuicheng"
+ },
+ "安顺": {
+ "pinyin": "anshun"
+ },
+ "毕节": {
+ "pinyin": "bijie"
+ },
+ "都匀": {
+ "pinyin": "duyun"
+ },
+ "凯里": {
+ "pinyin": "kaili"
+ },
+ "遵义": {
+ "pinyin": "zunyi"
+ },
+ "铜仁": {
+ "pinyin": "tongren"
+ }
+ },
+ "云南": {
+ "昆明": {
+ "pinyin": "kunming"
+ },
+ "景洪": {
+ "pinyin": "jinghong"
+ },
+ "普洱": {
+ "pinyin": "puer"
+ },
+ "临沧": {
+ "pinyin": "lincang"
+ },
+ "德宏": {
+ "pinyin": "dehong"
+ },
+ "保山": {
+ "pinyin": "baoshan"
+ },
+ "怒江": {
+ "pinyin": "nujiang"
+ },
+ "大理": {
+ "pinyin": "dali"
+ },
+ "香格里拉": {
+ "pinyin": "xianggelila"
+ },
+ "丽江": {
+ "pinyin": "lijiang"
+ },
+ "红河": {
+ "pinyin": "honghe"
+ },
+ "玉溪": {
+ "pinyin": "yuxi"
+ },
+ "楚雄": {
+ "pinyin": "chuxiong"
+ },
+ "文山": {
+ "pinyin": "wenshan"
+ },
+ "曲靖": {
+ "pinyin": "qujing"
+ },
+ "昭通": {
+ "pinyin": "zhaotong"
+ }
+ },
+ "西藏": {
+ "拉萨": {
+ "pinyin": "lasa"
+ },
+ "阿里": {
+ "pinyin": "ali"
+ },
+ "日喀则": {
+ "pinyin": "rikaze"
+ },
+ "山南": {
+ "pinyin": "shannan"
+ },
+ "林芝": {
+ "pinyin": "linzhi"
+ },
+ "那曲": {
+ "pinyin": "naqu"
+ },
+ "昌都": {
+ "pinyin": "changdu"
+ }
+ },
+ "陕西": {
+ "西安": {
+ "pinyin": "xian"
+ },
+ "汉中": {
+ "pinyin": "hanzhong"
+ },
+ "安康": {
+ "pinyin": "ankang"
+ },
+ "宝鸡": {
+ "pinyin": "baoji"
+ },
+ "杨凌": {
+ "pinyin": "yangling"
+ },
+ "咸阳": {
+ "pinyin": "xianyang"
+ },
+ "铜川": {
+ "pinyin": "tongchuan"
+ },
+ "渭南": {
+ "pinyin": "weinan"
+ },
+ "商洛": {
+ "pinyin": "shangluo"
+ },
+ "延安": {
+ "pinyin": "yanan"
+ },
+ "榆林": {
+ "pinyin": "yulin"
+ }
+ },
+ "甘肃": {
+ "兰州": {
+ "pinyin": "lanzhou"
+ },
+ "武都": {
+ "pinyin": "wudu"
+ },
+ "张掖": {
+ "pinyin": "zhangye"
+ },
+ "嘉峪关": {
+ "pinyin": "jiayuguan"
+ },
+ "酒泉": {
+ "pinyin": "jiuquan"
+ },
+ "合作": {
+ "pinyin": "hezuo"
+ },
+ "临夏": {
+ "pinyin": "linxia"
+ },
+ "天水": {
+ "pinyin": "tianshui"
+ },
+ "定西": {
+ "pinyin": "dingxi"
+ },
+ "白银": {
+ "pinyin": "baiyin"
+ },
+ "平凉": {
+ "pinyin": "pingliang"
+ },
+ "武威": {
+ "pinyin": "wuwei"
+ },
+ "金昌": {
+ "pinyin": "jinchang"
+ },
+ "庆阳": {
+ "pinyin": "qingyang"
+ }
+ },
+ "青海": {
+ "西宁": {
+ "pinyin": "xining"
+ },
+ "玉树": {
+ "pinyin": "yushu"
+ },
+ "格尔木": {
+ "pinyin": "geermu"
+ },
+ "果洛": {
+ "pinyin": "guoluo"
+ },
+ "海南": {
+ "pinyin": "hainan"
+ },
+ "海西": {
+ "pinyin": "haixi"
+ },
+ "海北": {
+ "pinyin": "haibei"
+ },
+ "黄南": {
+ "pinyin": "huangnan"
+ },
+ "海东": {
+ "pinyin": "haidong"
+ }
+ },
+ "宁夏": {
+ "银川": {
+ "pinyin": "yinchuan"
+ },
+ "固原": {
+ "pinyin": "guyuan"
+ },
+ "中卫": {
+ "pinyin": "zhongwei"
+ },
+ "吴忠": {
+ "pinyin": "wuzhong"
+ },
+ "石嘴山": {
+ "pinyin": "shizuishan"
+ }
+ },
+ "新疆": {
+ "乌鲁木齐": {
+ "pinyin": "wulumuqi"
+ },
+ "喀什": {
+ "pinyin": "kashi"
+ },
+ "阿图什": {
+ "pinyin": "atushi"
+ },
+ "和田": {
+ "pinyin": "hetian"
+ },
+ "阿拉尔": {
+ "pinyin": "alaer"
+ },
+ "阿克苏": {
+ "pinyin": "akesu"
+ },
+ "伊宁": {
+ "pinyin": "yining"
+ },
+ "博乐": {
+ "pinyin": "bole"
+ },
+ "库尔勒": {
+ "pinyin": "kuerle"
+ },
+ "石河子": {
+ "pinyin": "shihezi"
+ },
+ "吐鲁番": {
+ "pinyin": "tulufan"
+ },
+ "昌吉": {
+ "pinyin": "changji"
+ },
+ "五家渠": {
+ "pinyin": "wujiaqu"
+ },
+ "塔城": {
+ "pinyin": "tacheng"
+ },
+ "克拉玛依": {
+ "pinyin": "kelamayi"
+ },
+ "阿勒泰": {
+ "pinyin": "aletai"
+ },
+ "哈密": {
+ "pinyin": "hami"
+ }
+ },
+ "香港": {
+ "-": {
+ "pinyin": "hong kong"
+ }
+ },
+ "澳门": {
+ "-": {
+ "pinyin": "macao"
+ }
+ },
+ "台湾": {
+ "台北": {
+ "pinyin": "taipei"
+ },
+ "高雄": {
+ "pinyin": "gaoxiong"
+ },
+ "台中": {
+ "pinyin": "taizhong"
+ }
+ }
+}
\ No newline at end of file
diff --git a/boards/default_src/arduino_avr/blocks/actuator.js b/boards/default_src/arduino_avr/blocks/actuator.js
index 51ba3f00..708181fc 100644
--- a/boards/default_src/arduino_avr/blocks/actuator.js
+++ b/boards/default_src/arduino_avr/blocks/actuator.js
@@ -128,17 +128,53 @@ export const servo_read_degrees1 = {
}
};
-var TONE_NOTES = [["NOTE_C3", "131"], ["NOTE_D3", "147"], ["NOTE_E3", "165"], ["NOTE_F3", "175"], ["NOTE_G3", "196"], ["NOTE_A3", "220"], ["NOTE_B3", "247"], ["NOTE_C4", "262"], ["NOTE_D4", "294"], ["NOTE_E4", "330"], ["NOTE_F4", "349"], ["NOTE_G4", "392"], ["NOTE_A4", "440"], ["NOTE_B4", "494"], ["NOTE_C5", "523"], ["NOTE_D5", "587"], ["NOTE_E5", "659"], ["NOTE_F5", "698"], ["NOTE_G5", "784"], ["NOTE_A5", "880"], ["NOTE_B5", "988"], ["NOTE_C6", "1047"], ["NOTE_D6", "1175"], ["NOTE_E6", "1319"], ["NOTE_F6", "1397"], ["NOTE_G6", "1568"], ["NOTE_A6", "1760"], ["NOTE_B6", "1976"], ["NOTE_C7", "2093"], ["NOTE_D7", "2349"], ["NOTE_E7", "2637"], ["NOTE_F7", "2794"], ["NOTE_G7", "3136"], ["NOTE_A7", "3520"], ["NOTE_B7", "3951"]];
-
export const tone_notes = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown(TONE_NOTES), 'STAT');
+ .appendField(new Blockly.FieldDropdown(this.TONE_NOTES), 'STAT');
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_TONE_NOTE);
- }
+ },
+ TONE_NOTES: [
+ ["NOTE_C3", "131"],
+ ["NOTE_D3", "147"],
+ ["NOTE_E3", "165"],
+ ["NOTE_F3", "175"],
+ ["NOTE_G3", "196"],
+ ["NOTE_A3", "220"],
+ ["NOTE_B3", "247"],
+ ["NOTE_C4", "262"],
+ ["NOTE_D4", "294"],
+ ["NOTE_E4", "330"],
+ ["NOTE_F4", "349"],
+ ["NOTE_G4", "392"],
+ ["NOTE_A4", "440"],
+ ["NOTE_B4", "494"],
+ ["NOTE_C5", "523"],
+ ["NOTE_D5", "587"],
+ ["NOTE_E5", "659"],
+ ["NOTE_F5", "698"],
+ ["NOTE_G5", "784"],
+ ["NOTE_A5", "880"],
+ ["NOTE_B5", "988"],
+ ["NOTE_C6", "1047"],
+ ["NOTE_D6", "1175"],
+ ["NOTE_E6", "1319"],
+ ["NOTE_F6", "1397"],
+ ["NOTE_G6", "1568"],
+ ["NOTE_A6", "1760"],
+ ["NOTE_B6", "1976"],
+ ["NOTE_C7", "2093"],
+ ["NOTE_D7", "2349"],
+ ["NOTE_E7", "2637"],
+ ["NOTE_F7", "2794"],
+ ["NOTE_G7", "3136"],
+ ["NOTE_A7", "3520"],
+ ["NOTE_B7", "3951"]
+ ]
};
+
export const controls_tone = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -156,6 +192,7 @@ export const controls_tone = {
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE);
}
};
+
export const controls_notone = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -169,6 +206,7 @@ export const controls_notone = {
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_NOTONE);
}
};
+
export const controls_tone_noTimer = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -233,7 +271,7 @@ export const group_stepper_setup = {
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_STEPPER_STEP);
}
-}
+};
export const group_stepper_setup2 = {
init: function () {
@@ -269,7 +307,7 @@ export const group_stepper_setup2 = {
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_STEPPER_STEP2);
}
-}
+};
export const group_stepper_move = {
init: function () {
@@ -286,8 +324,7 @@ export const group_stepper_move = {
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_STEPPER_MOVE);
}
-}
-
+};
export const RGB_color_seclet = {
init: function () {
@@ -322,12 +359,6 @@ export const RGB_color_rgb = {
}
};
-var DISPLAY_RGB_TYPE = [
- ["NEO_GRB", "NEO_GRB"],
- ["NEO_RGB", "NEO_RGB"],
- ["NEO_RGBW", "NEO_RGBW"]
-];
-
//RGB
export const display_rgb_init = {
init: function () {
@@ -339,7 +370,7 @@ export const display_rgb_init = {
.setAlign(Blockly.inputs.Align.RIGHT);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE)
- .appendField(new Blockly.FieldDropdown(DISPLAY_RGB_TYPE), "TYPE");
+ .appendField(new Blockly.FieldDropdown(this.DISPLAY_RGB_TYPE), "TYPE");
this.appendValueInput("LEDCOUNT")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -349,7 +380,12 @@ export const display_rgb_init = {
this.setNextStatement(true, null);
this.setTooltip('');
// this.setFieldValue("12", "PIN");
- }
+ },
+ DISPLAY_RGB_TYPE: [
+ ["NEO_GRB", "NEO_GRB"],
+ ["NEO_RGB", "NEO_RGB"],
+ ["NEO_RGBW", "NEO_RGBW"]
+ ]
};
export const display_rgb_Brightness = {
@@ -372,7 +408,6 @@ export const display_rgb_Brightness = {
}
};
-
export const display_rgb = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -411,12 +446,6 @@ export const display_rgb_show = {
}
};
-var DISPLAY_RAINBOW_TYPE = [
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
-];
-
-
export const display_rgb_rainbow1 = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -463,7 +492,7 @@ export const display_rgb_rainbow3 = {
.appendField(new Blockly.FieldDropdown(Profile.default.digital), "PIN")
.setAlign(Blockly.inputs.Align.RIGHT);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown(DISPLAY_RAINBOW_TYPE), "TYPE");
+ .appendField(new Blockly.FieldDropdown(this.DISPLAY_RAINBOW_TYPE), "TYPE");
this.appendValueInput("rainbow_color")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -472,7 +501,11 @@ export const display_rgb_rainbow3 = {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
// this.setFieldValue("12", "PIN");
- }
+ },
+ DISPLAY_RAINBOW_TYPE: [
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
+ ]
};
export const RGB_color_HSV = {
@@ -505,18 +538,13 @@ export const RGB_color_HSV = {
this.setTooltip('色调范围0-65536;饱和度范围0-255;明度范围0-255');
}
};
-//电机驱动类型
-var MOTOR_TYPE = [
- ["L293", "L293"],
- ["L298", "L298"],
- ["TB6612FNG", "TB6612FNG"]
-];
+
export const Mixly_motor = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MOTOR)
- .appendField(new Blockly.FieldDropdown(MOTOR_TYPE), "MOTOR_TYPE");
+ .appendField(new Blockly.FieldDropdown(this.MOTOR_TYPE), "MOTOR_TYPE");
this.appendDummyInput("")
this.appendValueInput("PIN1")
.setCheck(Number)
@@ -536,8 +564,14 @@ export const Mixly_motor = {
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
- }
+ },
+ MOTOR_TYPE: [
+ ["L293", "L293"],
+ ["L298", "L298"],
+ ["TB6612FNG", "TB6612FNG"]
+ ]
};
+
export const Motor_8833 = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -562,23 +596,6 @@ export const Motor_8833 = {
}
};
-//MP3播放控制
-var GD5800_MP3_CONTROL_TYPE = [
- [Blockly.Msg.MIXLY_MP3_PLAY, "play();"],
- [Blockly.Msg.MIXLY_MP3_PAUSE, "pause();"],
- [Blockly.Msg.MIXLY_MP3_NEXT, "next();"],
- [Blockly.Msg.MIXLY_MP3_PREV, "prev();"],
- [Blockly.Msg.MIXLY_MP3_VOL_UP, "volumeUp();"],
- [Blockly.Msg.MIXLY_MP3_VOL_DOWN, "volumeDn();"]
-];
-
-//MP3 GD5800 设置设备USB/Flash
-var GD5800_MP3_Device = [
- ["Flash", "MP3_DEVICE_FLASH"],//内部Flash
- [Blockly.Msg.MIXLY_MP3_UDISK, "MP3_DEVICE_UDISK"]//外部U盘
-];
-
-
//GD5800 MP3播放设备选择
export const GD5800_MP3_Set_Device = {
init: function () {
@@ -594,13 +611,17 @@ export const GD5800_MP3_Set_Device = {
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MP3_SOURCE)
.appendField(Blockly.Msg.MIXLY_STAT)
- .appendField(new Blockly.FieldDropdown(GD5800_MP3_Device), "DEVICEID");
+ .appendField(new Blockly.FieldDropdown(this.GD5800_MP3_Device), "DEVICEID");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip();
this.setHelpUrl();
- }
+ },
+ GD5800_MP3_Device: [
+ ["Flash", "MP3_DEVICE_FLASH"],//内部Flash
+ [Blockly.Msg.MIXLY_MP3_UDISK, "MP3_DEVICE_UDISK"]//外部U盘
+ ]
};
//GD5800 MP3模块
@@ -617,23 +638,23 @@ export const GD5800_MP3_CONTROL = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_STAT)
- .appendField(new Blockly.FieldDropdown(GD5800_MP3_CONTROL_TYPE), "CONTROL_TYPE");
+ .appendField(new Blockly.FieldDropdown(this.GD5800_MP3_CONTROL_TYPE), "CONTROL_TYPE");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip();
this.setHelpUrl();
- }
+ },
+ GD5800_MP3_CONTROL_TYPE: [
+ [Blockly.Msg.MIXLY_MP3_PLAY, "play();"],
+ [Blockly.Msg.MIXLY_MP3_PAUSE, "pause();"],
+ [Blockly.Msg.MIXLY_MP3_NEXT, "next();"],
+ [Blockly.Msg.MIXLY_MP3_PREV, "prev();"],
+ [Blockly.Msg.MIXLY_MP3_VOL_UP, "volumeUp();"],
+ [Blockly.Msg.MIXLY_MP3_VOL_DOWN, "volumeDn();"]
+ ]
};
-//MP3循环模式
-var GD5800_MP3_LOOP_MODE_TYPE = [
- [Blockly.Msg.MIXLY_MP3_LOOP_ALL, "MP3_LOOP_ALL"],
- [Blockly.Msg.MIXLY_MP3_LOOP_FOLDER, "MP3_LOOP_FOLDER"],
- [Blockly.Msg.MIXLY_MP3_LOOP_ONE, "MP3_LOOP_ONE"],
- [Blockly.Msg.MIXLY_MP3_LOOP_RAM, "MP3_LOOP_RAM"]
-];
-
//GD5800 MP3模块循环模式
export const GD5800_MP3_LOOP_MODE = {
init: function () {
@@ -649,25 +670,21 @@ export const GD5800_MP3_LOOP_MODE = {
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MP3_LOOP_MODE)
.appendField(Blockly.Msg.MIXLY_STAT)
- .appendField(new Blockly.FieldDropdown(GD5800_MP3_LOOP_MODE_TYPE), "LOOP_MODE");
+ .appendField(new Blockly.FieldDropdown(this.GD5800_MP3_LOOP_MODE_TYPE), "LOOP_MODE");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip();
this.setHelpUrl();
- }
+ },
+ GD5800_MP3_LOOP_MODE_TYPE: [
+ [Blockly.Msg.MIXLY_MP3_LOOP_ALL, "MP3_LOOP_ALL"],
+ [Blockly.Msg.MIXLY_MP3_LOOP_FOLDER, "MP3_LOOP_FOLDER"],
+ [Blockly.Msg.MIXLY_MP3_LOOP_ONE, "MP3_LOOP_ONE"],
+ [Blockly.Msg.MIXLY_MP3_LOOP_RAM, "MP3_LOOP_RAM"]
+ ]
};
-//MP3 设置EQ
-var GD5800_MP3_EQ_MODE_TYPE = [
- [Blockly.Msg.MIXLY_MP3_EQ_NORMAL, "MP3_EQ_NORMAL"],
- [Blockly.Msg.MIXLY_MP3_EQ_POP, "MP3_EQ_POP"],
- [Blockly.Msg.MIXLY_MP3_EQ_ROCK, "MP3_EQ_ROCK"],
- [Blockly.Msg.MIXLY_MP3_EQ_JAZZ, "MP3_EQ_JAZZ"],
- [Blockly.Msg.MIXLY_MP3_EQ_CLASSIC, "MP3_EQ_CLASSIC"],
- [Blockly.Msg.MIXLY_MP3_EQ_BASS, "MP3_EQ_BASS"]
-];
-
//GD5800 MP3模块EQ模式
export const GD5800_MP3_EQ_MODE = {
init: function () {
@@ -683,13 +700,21 @@ export const GD5800_MP3_EQ_MODE = {
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MP3_EQ_MODE)
.appendField(Blockly.Msg.MIXLY_STAT)
- .appendField(new Blockly.FieldDropdown(GD5800_MP3_EQ_MODE_TYPE), "EQ_MODE");
+ .appendField(new Blockly.FieldDropdown(this.GD5800_MP3_EQ_MODE_TYPE), "EQ_MODE");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip();
this.setHelpUrl();
- }
+ },
+ GD5800_MP3_EQ_MODE_TYPE: [
+ [Blockly.Msg.MIXLY_MP3_EQ_NORMAL, "MP3_EQ_NORMAL"],
+ [Blockly.Msg.MIXLY_MP3_EQ_POP, "MP3_EQ_POP"],
+ [Blockly.Msg.MIXLY_MP3_EQ_ROCK, "MP3_EQ_ROCK"],
+ [Blockly.Msg.MIXLY_MP3_EQ_JAZZ, "MP3_EQ_JAZZ"],
+ [Blockly.Msg.MIXLY_MP3_EQ_CLASSIC, "MP3_EQ_CLASSIC"],
+ [Blockly.Msg.MIXLY_MP3_EQ_BASS, "MP3_EQ_BASS"]
+ ]
};
//GD5800 MP3模块设置音量
@@ -742,8 +767,6 @@ export const GD5800_MP3_PLAY_NUM = {
}
};
-var VOICE_LIST = [["老师", "0x00"], ["爸爸", "0x01"], ["妈妈", "0x02"], ["爷爷", "0x03"], ["奶奶", "0x04"], ["姥姥", "0x05"], ["姥爷", "0x06"], ["哥哥", "0x07"], ["姐姐", "0x08"], ["叔叔", "0x09"], ["阿姨", "0x0A"], ["上午", "0x0B"], ["下午", "0x0C"], ["晚上", "0x0D"], ["前方", "0x0E"], ["厘米", "0x0F"], ["新年快乐", "0x10"], ["身体健康", "0x11"], ["工作顺利", "0x12"], ["学习进步", "0x13"], ["您好", "0x14"], ["谢谢", "0x15"], ["的", "0x16"], ["祝", "0x17"], ["慢走", "0x18"], ["欢迎光临", "0x19"], ["亲爱的", "0x1A"], ["同学们", "0x1B"], ["工作辛苦了", "0x1C"], ["点", "0x1D"], ["打开", "0x1E"], ["关闭", "0x1F"], ["千", "0x20"], ["百", "0x21"], ["十", "0x22"], ["1", "0x23"], ["2", "0x24"], ["3", "0x25"], ["4", "0x26"], ["5", "0x27"], ["6", "0x28"], ["7", "0x29"], ["8", "0x2A"], ["9", "0x2B"], ["0", "0x2C"], ["当前", "0x2D"], ["转", "0x2E"], ["左", "0x2F"], ["右", "0x30"], ["请", "0x31"], ["已", "0x32"], ["现在", "0x33"], ["是", "0x34"], ["红灯", "0x35"], ["绿灯", "0x36"], ["黄灯", "0x37"], ["温度", "0x38"], ["湿度", "0x39"], ["欢迎常来", "0x3A"], ["还有", "0x3B"], ["秒", "0x3C"], ["分", "0x3D"], ["变", "0x3E"], ["等", "0x3F"], ["下一次", "0x40"], ["功能", "0x41"], ["障碍物", "0x42"], ["世界那么大,我想去看看", "0x43"]];
-
export const voice_module = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -754,12 +777,82 @@ export const voice_module = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MP3_PLAY)
- .appendField(new Blockly.FieldDropdown(VOICE_LIST), "VOICE");
+ .appendField(new Blockly.FieldDropdown(this.VOICE_LIST), "VOICE");
this.appendValueInput("WAIT").setCheck(Number).appendField(Blockly.Msg.MIXLY_MICROBIT_WAIT);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
- }
+ },
+ VOICE_LIST: [
+ ["老师", "0x00"],
+ ["爸爸", "0x01"],
+ ["妈妈", "0x02"],
+ ["爷爷", "0x03"],
+ ["奶奶", "0x04"],
+ ["姥姥", "0x05"],
+ ["姥爷", "0x06"],
+ ["哥哥", "0x07"],
+ ["姐姐", "0x08"],
+ ["叔叔", "0x09"],
+ ["阿姨", "0x0A"],
+ ["上午", "0x0B"],
+ ["下午", "0x0C"],
+ ["晚上", "0x0D"],
+ ["前方", "0x0E"],
+ ["厘米", "0x0F"],
+ ["新年快乐", "0x10"],
+ ["身体健康", "0x11"],
+ ["工作顺利", "0x12"],
+ ["学习进步", "0x13"],
+ ["您好", "0x14"],
+ ["谢谢", "0x15"],
+ ["的", "0x16"],
+ ["祝", "0x17"],
+ ["慢走", "0x18"],
+ ["欢迎光临", "0x19"],
+ ["亲爱的", "0x1A"],
+ ["同学们", "0x1B"],
+ ["工作辛苦了", "0x1C"],
+ ["点", "0x1D"],
+ ["打开", "0x1E"],
+ ["关闭", "0x1F"],
+ ["千", "0x20"],
+ ["百", "0x21"],
+ ["十", "0x22"],
+ ["1", "0x23"],
+ ["2", "0x24"],
+ ["3", "0x25"],
+ ["4", "0x26"],
+ ["5", "0x27"],
+ ["6", "0x28"],
+ ["7", "0x29"],
+ ["8", "0x2A"],
+ ["9", "0x2B"],
+ ["0", "0x2C"],
+ ["当前", "0x2D"],
+ ["转", "0x2E"],
+ ["左", "0x2F"],
+ ["右", "0x30"],
+ ["请", "0x31"],
+ ["已", "0x32"],
+ ["现在", "0x33"],
+ ["是", "0x34"],
+ ["红灯", "0x35"],
+ ["绿灯", "0x36"],
+ ["黄灯", "0x37"],
+ ["温度", "0x38"],
+ ["湿度", "0x39"],
+ ["欢迎常来", "0x3A"],
+ ["还有", "0x3B"],
+ ["秒", "0x3C"],
+ ["分", "0x3D"],
+ ["变", "0x3E"],
+ ["等", "0x3F"],
+ ["下一次", "0x40"],
+ ["功能", "0x41"],
+ ["障碍物", "0x42"],
+ ["世界那么大,我想去看看", "0x43"]
+ ]
};
@@ -767,21 +860,11 @@ export const voice_module = {
export const AFMotorRun = {
init: function () {
this.setColour(ACTUATOR_HUE);
- var MOTOR = [
- ["M1", "1"],
- ["M2", "2"],
- ["M3", "3"],
- ["M4", "4"],
- ];
- var DIRECTION = [
- [Blockly.Msg.MIXLY_FORWARD, "FORWARD"],
- [Blockly.Msg.MIXLY_BACKWARD, "BACKWARD"],
- ];
this.appendDummyInput("")
.appendField("AFMotor" + Blockly.Msg.MIXLY_MOTOR)
- .appendField(new Blockly.FieldDropdown(MOTOR), "motor")
+ .appendField(new Blockly.FieldDropdown(this.MOTOR), "motor")
.appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)
- .appendField(new Blockly.FieldDropdown(DIRECTION), "direction")
+ .appendField(new Blockly.FieldDropdown(this.DIRECTION), "direction")
.appendField(Blockly.Msg.MIXLY_SPEED);
this.appendValueInput("speed", Number)
.setCheck(Number);
@@ -789,26 +872,35 @@ export const AFMotorRun = {
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
- }
+ },
+ MOTOR: [
+ ["M1", "1"],
+ ["M2", "2"],
+ ["M3", "3"],
+ ["M4", "4"],
+ ],
+ DIRECTION: [
+ [Blockly.Msg.MIXLY_FORWARD, "FORWARD"],
+ [Blockly.Msg.MIXLY_BACKWARD, "BACKWARD"],
+ ]
};
//DCMotorStop
export const AFMotorStop = {
init: function () {
this.setColour(ACTUATOR_HUE);
- var MOTOR = [
- ["M1", "1"],
- ["M2", "2"],
- ["M3", "3"],
- ["M4", "4"],
- ];
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_STOP + "AFMotor" + Blockly.Msg.MIXLY_MOTOR)
- .appendField(new Blockly.FieldDropdown(MOTOR), "motor");
+ .appendField(new Blockly.FieldDropdown(this.MOTOR), "motor");
this.setPreviousStatement(true);
this.setNextStatement(true);
-
- }
+ },
+ MOTOR: [
+ ["M1", "1"],
+ ["M2", "2"],
+ ["M3", "3"],
+ ["M4", "4"],
+ ]
};
//初始化DFPlayer Mini
@@ -833,7 +925,13 @@ export const arduino_dfplayer_mini_begin = {
export const arduino_dfplayer_mini_pin = {
init: function () {
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([["Serial", "Serial"], ["SoftwareSerial", "mySerial"], ["SoftwareSerial1", "mySerial1"], ["SoftwareSerial2", "mySerial2"], ["SoftwareSerial3", "mySerial3"]]), "pin_type");
+ .appendField(new Blockly.FieldDropdown([
+ ["Serial", "Serial"],
+ ["SoftwareSerial", "mySerial"],
+ ["SoftwareSerial1", "mySerial1"],
+ ["SoftwareSerial2", "mySerial2"],
+ ["SoftwareSerial3", "mySerial3"]
+ ]), "pin_type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(65);
@@ -886,7 +984,10 @@ export const arduino_dfplayer_mini_volume_up_down = {
this.appendDummyInput()
.appendField(Blockly.Msg.YX5200_MP3)
.appendField(new Blockly.FieldTextInput("myPlayer"), "dfplayer_name")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MP3_VOL_UP, "volumeUp"], [Blockly.Msg.MIXLY_MP3_VOL_DOWN, "volumeDown"]]), "volume_type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_MP3_VOL_UP, "volumeUp"],
+ [Blockly.Msg.MIXLY_MP3_VOL_DOWN, "volumeDown"]
+ ]), "volume_type");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -918,7 +1019,14 @@ export const arduino_dfplayer_mini_EQ = {
export const arduino_dfplayer_mini_EQ_type = {
init: function () {
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MP3_EQ_NORMAL, "DFPLAYER_EQ_NORMAL"], [Blockly.Msg.MIXLY_MP3_EQ_POP, "DFPLAYER_EQ_POP"], [Blockly.Msg.MIXLY_MP3_EQ_ROCK, "DFPLAYER_EQ_ROCK"], [Blockly.Msg.MIXLY_MP3_EQ_CLASSIC, "DFPLAYER_EQ_CLASSIC"], [Blockly.Msg.MIXLY_MP3_EQ_JAZZ, "DFPLAYER_EQ_JAZZ"], [Blockly.Msg.MIXLY_MP3_EQ_BASS, "DFPLAYER_EQ_BASS"]]), "eq_type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_MP3_EQ_NORMAL, "DFPLAYER_EQ_NORMAL"],
+ [Blockly.Msg.MIXLY_MP3_EQ_POP, "DFPLAYER_EQ_POP"],
+ [Blockly.Msg.MIXLY_MP3_EQ_ROCK, "DFPLAYER_EQ_ROCK"],
+ [Blockly.Msg.MIXLY_MP3_EQ_CLASSIC, "DFPLAYER_EQ_CLASSIC"],
+ [Blockly.Msg.MIXLY_MP3_EQ_JAZZ, "DFPLAYER_EQ_JAZZ"],
+ [Blockly.Msg.MIXLY_MP3_EQ_BASS, "DFPLAYER_EQ_BASS"]
+ ]), "eq_type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(ACTUATOR_HUE);
@@ -949,7 +1057,13 @@ export const arduino_dfplayer_mini_outputDevice = {
export const arduino_dfplayer_mini_outputDevice_type = {
init: function () {
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([["SD卡", "DFPLAYER_DEVICE_SD"], ["U盘", "DFPLAYER_DEVICE_U_DISK"], ["AUX", "DFPLAYER_DEVICE_AUX"], ["SLEEP", "DFPLAYER_DEVICE_SLEEP"], ["FLASH", "DFPLAYER_DEVICE_FLASH"]]), "outputdevice_type");
+ .appendField(new Blockly.FieldDropdown([
+ ["SD卡", "DFPLAYER_DEVICE_SD"],
+ ["U盘", "DFPLAYER_DEVICE_U_DISK"],
+ ["AUX", "DFPLAYER_DEVICE_AUX"],
+ ["SLEEP", "DFPLAYER_DEVICE_SLEEP"],
+ ["FLASH", "DFPLAYER_DEVICE_FLASH"]
+ ]), "outputdevice_type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(ACTUATOR_HUE);
@@ -961,34 +1075,34 @@ export const arduino_dfplayer_mini_outputDevice_type = {
//DFPlayer Mini 设置-1
export const arduino_dfplayer_set_1 = {
init: function () {
- var DATA = [
- [Blockly.Msg.MIXLY_MP3_PREV, "previous"],
- [Blockly.Msg.MIXLY_MP3_NEXT, "next"],
- [Blockly.Msg.MIXLY_MP3_PLAY, "start"],
- [Blockly.Msg.MIXLY_MP3_PAUSE, "pause"],
- [Blockly.Msg.DFPLAYER_MINI_STOP_ADVERTISE, "stopAdvertise"],
- [Blockly.Msg.DFPLAYER_MINI_ENABLE_LOOP, "enableLoop"],
- [Blockly.Msg.DFPLAYER_MINI_DISABLE_LOOP, "disableLoop"],
- [Blockly.Msg.DFPLAYER_MINI_ENABLE_LOOP_ALL, "enableLoopAll"],
- [Blockly.Msg.DFPLAYER_MINI_DISABLE_LOOP_ALL, "disableLoopAll"],
- [Blockly.Msg.DFPLAYER_MINI_RANDOM_ALL, "randomAll"],
- [Blockly.Msg.DFPLAYER_MINI_ENABLE_DAC, "enableDAC"],
- [Blockly.Msg.DFPLAYER_MINI_DISABLE_DAC, "disableDAC"],
- [Blockly.Msg.DFPLAYER_MINI_SLEEP, "sleep"],
- [Blockly.Msg.HTML_RESET, "reset"]
- ];
this.appendDummyInput()
.appendField(Blockly.Msg.YX5200_MP3)
.appendField(new Blockly.FieldTextInput("myPlayer"), "dfplayer_name")
.appendField(" ")
- .appendField(new Blockly.FieldDropdown(DATA), "set_data");
+ .appendField(new Blockly.FieldDropdown(this.DATA), "set_data");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(ACTUATOR_HUE);
this.setTooltip("");
this.setHelpUrl("");
- }
+ },
+ DATA: [
+ [Blockly.Msg.MIXLY_MP3_PREV, "previous"],
+ [Blockly.Msg.MIXLY_MP3_NEXT, "next"],
+ [Blockly.Msg.MIXLY_MP3_PLAY, "start"],
+ [Blockly.Msg.MIXLY_MP3_PAUSE, "pause"],
+ [Blockly.Msg.DFPLAYER_MINI_STOP_ADVERTISE, "stopAdvertise"],
+ [Blockly.Msg.DFPLAYER_MINI_ENABLE_LOOP, "enableLoop"],
+ [Blockly.Msg.DFPLAYER_MINI_DISABLE_LOOP, "disableLoop"],
+ [Blockly.Msg.DFPLAYER_MINI_ENABLE_LOOP_ALL, "enableLoopAll"],
+ [Blockly.Msg.DFPLAYER_MINI_DISABLE_LOOP_ALL, "disableLoopAll"],
+ [Blockly.Msg.DFPLAYER_MINI_RANDOM_ALL, "randomAll"],
+ [Blockly.Msg.DFPLAYER_MINI_ENABLE_DAC, "enableDAC"],
+ [Blockly.Msg.DFPLAYER_MINI_DISABLE_DAC, "disableDAC"],
+ [Blockly.Msg.DFPLAYER_MINI_SLEEP, "sleep"],
+ [Blockly.Msg.HTML_RESET, "reset"]
+ ]
};
//DFPlayer Mini 播放和循环指定曲目
@@ -1000,7 +1114,12 @@ export const arduino_dfplayer_play_loop = {
this.appendValueInput("play_data")
.setCheck(null)
.appendField(" ")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MP3_PLAY, "play"], [Blockly.Msg.MIXLY_MP3_LOOP_ONE, "loop"], [Blockly.Msg.DFPLAYER_MINI_ADVERTISE, "advertise"], [Blockly.Msg.DFPLAYER_MINI_PLAYMP3FOLDER, "playMp3Folder"]]), "play_type")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_MP3_PLAY, "play"],
+ [Blockly.Msg.MIXLY_MP3_LOOP_ONE, "loop"],
+ [Blockly.Msg.DFPLAYER_MINI_ADVERTISE, "advertise"],
+ [Blockly.Msg.DFPLAYER_MINI_PLAYMP3FOLDER, "playMp3Folder"]
+ ]), "play_type")
.appendField(Blockly.Msg.DFPLAYER_MINI_SONG);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
@@ -1029,7 +1148,10 @@ export const arduino_dfplayer_playFolder = {
this.appendValueInput("fold_data")
.setCheck(null)
.appendField(Blockly.Msg.MIXLY_MP3_PLAY)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.DFPLAYER_MINI_FOLDER, "playFolder"], [Blockly.Msg.DFPLAYER_MINI_LARGEFOLDER, "playLargeFolder"]]), "fold_type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.DFPLAYER_MINI_FOLDER, "playFolder"],
+ [Blockly.Msg.DFPLAYER_MINI_LARGEFOLDER, "playLargeFolder"]
+ ]), "fold_type");
this.appendValueInput("play_data")
.setCheck(null)
.appendField(Blockly.Msg.DFPLAYER_MINI_SONG);
@@ -1075,7 +1197,11 @@ export const arduino_dfplayer_read_now = {
.appendField(new Blockly.FieldTextInput("myPlayer"), "dfplayer_name");
this.appendDummyInput()
.appendField(' ' + Blockly.Msg.MIXLY_GET)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PULSEIN_STAT, "readState"], [Blockly.Msg.MIXLY_MP3_VOL, "readVolume"], [Blockly.Msg.MIXLY_MP3_EQ_MODE, "readEQ"]]), "read_type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_PULSEIN_STAT, "readState"],
+ [Blockly.Msg.MIXLY_MP3_VOL, "readVolume"],
+ [Blockly.Msg.MIXLY_MP3_EQ_MODE, "readEQ"]
+ ]), "read_type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(ACTUATOR_HUE);
@@ -1094,7 +1220,10 @@ export const arduino_dfplayer_readFileCounts = {
.setCheck(null)
.appendField(' ' + Blockly.Msg.MIXLY_GET);
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.DFPLAYER_MINI_READ_FILE_COUNTS, "readFileCounts"], [Blockly.Msg.DFPLAYER_MINI_READ_CURRENT_FILE_NUMBER, "readCurrentFileNumber"]]), "play_data");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.DFPLAYER_MINI_READ_FILE_COUNTS, "readFileCounts"],
+ [Blockly.Msg.DFPLAYER_MINI_READ_CURRENT_FILE_NUMBER, "readCurrentFileNumber"]
+ ]), "play_data");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(ACTUATOR_HUE);
@@ -1129,7 +1258,10 @@ export const arduino_dfplayer_available = {
.appendField(new Blockly.FieldTextInput("myPlayer"), "dfplayer_name");
this.appendDummyInput()
.appendField(".")
- .appendField(new Blockly.FieldDropdown([["available", "available"], ["readType", "readType"], ["read", "read"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ ["available", "available"],
+ ["readType", "readType"], ["read", "read"]
+ ]), "type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(ACTUATOR_HUE);
@@ -1168,37 +1300,30 @@ export const arduino_dfplayer_available = {
);
}
};
-var I2C_Motor_SELECT = [["M0", "0"], ["M1", "1"], ["M2", "2"], ["M3", "3"], ["M4", "4"], ["M5", "5"], ["M6", "6"], ["M7", "7"]];
export const I2Cmotor = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput("")
.appendField("I2C" + Blockly.Msg.MIXLY_MOTOR)
- .appendField(new Blockly.FieldDropdown(I2C_Motor_SELECT), "motor");
+ .appendField(new Blockly.FieldDropdown(this.I2C_Motor_SELECT), "motor");
this.appendValueInput("SPEED").setCheck(Number).appendField(Blockly.Msg.MIXLY_MOTOR_SPEED);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
- }
+ },
+ I2C_Motor_SELECT: [
+ ["M0", "0"],
+ ["M1", "1"],
+ ["M2", "2"],
+ ["M3", "3"],
+ ["M4", "4"],
+ ["M5", "5"],
+ ["M6", "6"],
+ ["M7", "7"]
+ ]
};
-//N910X MP3模块 控制
-var M9101X_S_MP3_CONTROL_TYPE = [
- [Blockly.Msg.MIXLY_MP3_PLAY, "play();"],
- [Blockly.Msg.MIXLY_MP3_PAUSE, "pause();"],
- [Blockly.Msg.MIXLY_STOP, "stop();"],
- [Blockly.Msg.MIXLY_MP3_NEXT, "play_down();"],
- [Blockly.Msg.MIXLY_MP3_PREV, "play_up();"],
- [Blockly.Msg.MIXLY_MP3_LOOP_ALL, "cycle_all();"],
- [Blockly.Msg.MIXLY_MP3_LOOP_ONE, "cycle_single();"],
- ["切换到TF卡", "set_sd();"],
- ["切换到" + Blockly.Msg.MIXLY_MP3_UDISK, "set_usb_flash();"],
- ["切换到MP3模式", "set_mp3();"],
- ["切换到flash模式", "set_flash();"],
- ["切换音乐风格", "set_eq();"],
-];
-
export const M9101X_S_MP3_CONTROL = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -1206,14 +1331,31 @@ export const M9101X_S_MP3_CONTROL = {
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
- this.appendDummyInput("").appendField(Blockly.Msg.MIXLY_STAT).appendField(new Blockly.FieldDropdown(M9101X_S_MP3_CONTROL_TYPE), "CONTROL_TYPE");
+ this.appendDummyInput("")
+ .appendField(Blockly.Msg.MIXLY_STAT)
+ .appendField(new Blockly.FieldDropdown(this.M9101X_S_MP3_CONTROL_TYPE), "CONTROL_TYPE");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip();
this.setHelpUrl();
- }
+ },
+ M9101X_S_MP3_CONTROL_TYPE: [
+ [Blockly.Msg.MIXLY_MP3_PLAY, "play();"],
+ [Blockly.Msg.MIXLY_MP3_PAUSE, "pause();"],
+ [Blockly.Msg.MIXLY_STOP, "stop();"],
+ [Blockly.Msg.MIXLY_MP3_NEXT, "play_down();"],
+ [Blockly.Msg.MIXLY_MP3_PREV, "play_up();"],
+ [Blockly.Msg.MIXLY_MP3_LOOP_ALL, "cycle_all();"],
+ [Blockly.Msg.MIXLY_MP3_LOOP_ONE, "cycle_single();"],
+ ["切换到TF卡", "set_sd();"],
+ ["切换到" + Blockly.Msg.MIXLY_MP3_UDISK, "set_usb_flash();"],
+ ["切换到MP3模式", "set_mp3();"],
+ ["切换到flash模式", "set_flash();"],
+ ["切换音乐风格", "set_eq();"],
+ ]
};
+
//N910X MP3模块 音量设置
export const M9101X_S_MP3_VOL_CONTROL = {
init: function () {
diff --git a/boards/default_src/arduino_avr/blocks/blynk.js b/boards/default_src/arduino_avr/blocks/blynk.js
index eee852e5..7f5b7ba5 100644
--- a/boards/default_src/arduino_avr/blocks/blynk.js
+++ b/boards/default_src/arduino_avr/blocks/blynk.js
@@ -66,7 +66,7 @@ export const blynk_server = {
};
//虚拟管脚选择
-var BLYNK_VIRTUALPIN_SELECT = [
+const BLYNK_VIRTUALPIN_SELECT = [
["V0", "V0"],
["V1", "V1"],
["V2", "V2"],
@@ -111,7 +111,7 @@ var BLYNK_VIRTUALPIN_SELECT = [
];
//定时器选择
-var BLYNK_TIMER_SELECT = [
+const BLYNK_TIMER_SELECT = [
["1", "1"],
["2", "2"],
["3", "3"],
@@ -152,9 +152,9 @@ export const blynk_iot_push_data = {
//从app端获取数据
export const blynk_iot_get_data = {
/**
- * Block for defining a procedure with no return value.
- * @this Blockly.Block
- */
+ * Block for defining a procedure with no return value.
+ * @this Blockly.Block
+ */
init: function () {
this.setColour(BLYNK1_HUE);
this.appendDummyInput("")
@@ -173,17 +173,14 @@ export const blynk_iot_get_data = {
this.setNextStatement(false, null);
this.statementConnection_ = null;
},
-
getVars: function () {
return [this.getFieldValue("VAR")];
},
-
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue("VAR"))) {
this.setTitleValue(newName, "VAR");
}
},
-
/**
* Add or remove the statement block from this function definition.
* @param {boolean} hasStatements True if a statement block is needed.
@@ -277,7 +274,6 @@ export const blynk_iot_get_data = {
}
this.updateParams_();
// Blockly.Procedures.mutateCallers(this);
-
// Show or hide the statement input.
this.setStatements_(xmlElement.getAttribute("statements") !== "false");
},
@@ -492,7 +488,7 @@ export const Blynk_connect_state = {
}
};
-var BLYNK_CONNECT_STATE_SELECT = [
+const BLYNK_CONNECT_STATE_SELECT = [
[Blockly.Msg.BLYNK_CONNECTED, 'BLYNK_CONNECTED'],
[Blockly.Msg.BLYNK_DISCONNECTED, 'BLYNK_DISCONNECTED'],
[Blockly.Msg.BLYNK_APP_CONNECTED, 'BLYNK_APP_CONNECTED'],
@@ -588,26 +584,30 @@ export const blynk_iot_WidgetLED_VALUE = {
}
};
-var AC_TYPE = [
+const AC_TYPE = [
[Blockly.Msg.blynk_IOT_GREE, "Gree"],
[Blockly.Msg.blynk_IOT_MIDEA, "Midea"],
];
-var AC_POWER = [
+const AC_POWER = [
[Blockly.Msg.MIXLY_ON, "true"],
[Blockly.Msg.MIXLY_OFF, "false"]
];
-var AC_MODE = [
+
+const AC_MODE = [
[Blockly.Msg.blynk_IOT_FAN, "FAN"],
[Blockly.Msg.blynk_IOT_HEAT, "HEAT"],
[Blockly.Msg.blynk_IOT_COOL, "COOL"],
[Blockly.Msg.blynk_IOT_DRY, "DRY"],
- [Blockly.Msg.blynk_IOT_AUTO, "AUTO"]];
-var AC_FAN = [
+ [Blockly.Msg.blynk_IOT_AUTO, "AUTO"]
+];
+
+const AC_FAN = [
[Blockly.Msg.blynk_IOT_FAN_3, "FAN_3"],
[Blockly.Msg.blynk_IOT_FAN_2, "FAN_2"],
[Blockly.Msg.blynk_IOT_FAN_1, "FAN_1"],
- [Blockly.Msg.blynk_IOT_FAN_0, "FAN_0"]];
+ [Blockly.Msg.blynk_IOT_FAN_0, "FAN_0"]
+];
//红外控制空调
export const blynk_iot_ir_send_ac = {
@@ -643,7 +643,9 @@ export const blynk_iot_ir_send_ac = {
export const blynk_iot_ir_recv_raw = {
init: function () {
this.setColour(BLYNK1_HUE);
- this.appendValueInput("PIN", Number).appendField(Blockly.Msg.blynk_IOT_IR_RECEIVE_RAW).setCheck(Number);
+ this.appendValueInput("PIN", Number)
+ .appendField(Blockly.Msg.blynk_IOT_IR_RECEIVE_RAW)
+ .setCheck(Number);
// this.appendValueInput("PIN", Number).appendField(Blockly.Msg.MIXLY_PIN).setCheck(Number);
this.setPreviousStatement(true);
this.setNextStatement(true);
diff --git a/boards/default_src/arduino_avr/blocks/communicate.js b/boards/default_src/arduino_avr/blocks/communicate.js
index f891071b..d2fd513e 100644
--- a/boards/default_src/arduino_avr/blocks/communicate.js
+++ b/boards/default_src/arduino_avr/blocks/communicate.js
@@ -29,26 +29,28 @@ export const ir_recv = {
}
}
};
+
+const TYPE = [
+ ['RC5', 'RC5'],
+ ['RC6', 'RC6'],
+ ['NEC', 'NEC'],
+ ['Sony', 'Sony'],
+ ['Panasonic', 'Panasonic'],
+ ['JVC', 'JVC'],
+ ['SAMSUNG', 'SAMSUNG'],
+ ['Whynter', 'Whynter'],
+ ['AiwaRCT501', 'AiwaRCT501'],
+ ['LG', 'LG'],
+ ['Sanyo', 'Sanyo'],
+ ['Mitsubishi', 'Mitsubishi'],
+ ['DISH', 'DISH'],
+ ['SharpRaw', 'SharpRaw'],
+ ['Denon', 'Denon']
+];
+
//红外发射模块(NEC)
export const ir_send_nec = {
init: function () {
- var TYPE = [
- ['RC5', 'RC5'],
- ['RC6', 'RC6'],
- ['NEC', 'NEC'],
- ['Sony', 'Sony'],
- ['Panasonic', 'Panasonic'],
- ['JVC', 'JVC'],
- ['SAMSUNG', 'SAMSUNG'],
- ['Whynter', 'Whynter'],
- ['AiwaRCT501', 'AiwaRCT501'],
- ['LG', 'LG'],
- ['Sanyo', 'Sanyo'],
- ['Mitsubishi', 'Mitsubishi'],
- ['DISH', 'DISH'],
- ['SharpRaw', 'SharpRaw'],
- ['Denon', 'Denon']
- ];
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_IR_SEND_NEC1)
@@ -117,8 +119,8 @@ export const ir_send_raw = {
this.setTooltip(Blockly.Msg.MIXLY_IR_SEND_RAW_TOOLTIP);
}
};
-// IIC通信
+// IIC通信
// IIC初始化主机
export const i2c_master_Init = {
init: function () {
@@ -131,6 +133,7 @@ export const i2c_master_Init = {
this.setHelpUrl("");
}
};
+
// IIC初始化从机
export const i2c_slave_Init = {
init: function () {
@@ -279,7 +282,6 @@ export const i2c_master_readerReg = {
}
};
-
export const i2c_slave_onrequest = {
init: function () {
this.setColour(COMMUNICATE_HUE);
@@ -383,9 +385,10 @@ export const spi_transfer = {
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
- this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SPI_TRANSFER.replace('%1', Blockly.Arduino.valueToCode(this, 'pin', Blockly.Arduino.ORDER_ATOMIC)));
+ const pinValue = Blockly.Arduino.valueToCode(this, 'pin', Blockly.Arduino.ORDER_ATOMIC);
+ this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SPI_TRANSFER.replace('%1', pinValue));
}
-}
+};
//RFID
export const RFID_init = {
@@ -426,7 +429,6 @@ export const RFID_on = {
}
};
-
//读卡号
export const RFID_readcardnum = {
init: function () {
@@ -451,7 +453,6 @@ export const RFID_readcardnum = {
}
}; */
-
export const RFID_in = {
init: function () {
this.appendValueInput("uid_")
@@ -483,7 +484,6 @@ export const RFID_writecarddata = {
}
};
-
//读数据块的内容
export const RFID_readcarddata = {
init: function () {
@@ -510,7 +510,7 @@ export const RFID_serialprintcarddata = {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
-}; */
+};*/
//关闭RFID
export const RFID_off = {
@@ -652,7 +652,12 @@ export const MFRC522_ReadCard = {
export const spi_begin_slave = {
init: function () {
this.appendDummyInput()
- .appendField(Blockly.Msg.MIXLY_SETUP + "SPI" + Blockly.Msg.MIXLY_DEVICE + Blockly.Msg.MIXLY_AS + Blockly.Msg.MIXLY_SALVE);
+ .appendField(
+ Blockly.Msg.MIXLY_SETUP
+ + "SPI" + Blockly.Msg.MIXLY_DEVICE
+ + Blockly.Msg.MIXLY_AS
+ + Blockly.Msg.MIXLY_SALVE
+ );
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -665,7 +670,12 @@ export const spi_begin_slave = {
export const spi_begin_master = {
init: function () {
this.appendDummyInput()
- .appendField(Blockly.Msg.MIXLY_SETUP + "SPI" + Blockly.Msg.MIXLY_DEVICE + Blockly.Msg.MIXLY_AS + Blockly.Msg.MIXLY_MASTER);
+ .appendField(
+ Blockly.Msg.MIXLY_SETUP
+ + "SPI" + Blockly.Msg.MIXLY_DEVICE
+ + Blockly.Msg.MIXLY_AS
+ + Blockly.Msg.MIXLY_MASTER
+ );
this.appendValueInput("spi_slave_pin")
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -683,7 +693,11 @@ export const spi_transfer_Init = {
init: function () {
this.appendValueInput("slave_pin")
.setCheck(null)
- .appendField("SPI" + Blockly.Msg.MIXLY_SEND_DATA + Blockly.Msg.MIXLY_SALVE + Blockly.Msg.MIXLY_PIN);
+ .appendField(
+ "SPI" + Blockly.Msg.MIXLY_SEND_DATA
+ + Blockly.Msg.MIXLY_SALVE
+ + Blockly.Msg.MIXLY_PIN
+ );
this.appendStatementInput("transfer_data")
.setCheck(null);
this.setInputsInline(true);
@@ -699,7 +713,6 @@ export const spi_transfer_1 = {
init: function () {
this.appendValueInput("transfer_data")
.setCheck(null)
-
.appendField("SPI" + Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_SEND);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
@@ -730,7 +743,10 @@ export const spi_slave_interrupt = {
init: function () {
this.appendValueInput("slave_interrupt_input")
.setCheck(null)
- .appendField("SPI " + Blockly.Msg.MIXLY_STM32_I2C_SLAVE_RECEIVE_EVENT + " " + Blockly.Msg.MIXLY_STM32_SPI_GET_REGISTER_DATA);
+ .appendField(
+ "SPI " + Blockly.Msg.MIXLY_STM32_I2C_SLAVE_RECEIVE_EVENT
+ + " " + Blockly.Msg.MIXLY_STM32_SPI_GET_REGISTER_DATA
+ );
this.appendStatementInput("slave_interrupt_data")
.setCheck(null)
.appendField(Blockly.Msg.MIXLY_MSTIMER2_DO);
@@ -747,7 +763,10 @@ export const spi_slave_receive = {
init: function () {
this.appendValueInput("slave_receive_data")
.setCheck(null)
- .appendField("SPI " + Blockly.Msg.MIXLY_SALVE + " " + Blockly.Msg.MIXLY_STM32_SPI_GET_REGISTER_DATA);
+ .appendField(
+ "SPI " + Blockly.Msg.MIXLY_SALVE
+ + " " + Blockly.Msg.MIXLY_STM32_SPI_GET_REGISTER_DATA
+ );
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(COMMUNICATE_HUE);
diff --git a/boards/default_src/arduino_avr/blocks/control.js b/boards/default_src/arduino_avr/blocks/control.js
index ea27e942..726eee02 100644
--- a/boards/default_src/arduino_avr/blocks/control.js
+++ b/boards/default_src/arduino_avr/blocks/control.js
@@ -11,19 +11,15 @@ export const base_setup = {
this.setHelpUrl(
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id2"
);
- },
+ }
};
export const controls_delay = {
init: function () {
- var UNIT = [
- [Blockly.Msg.MIXLY_MILLIS, "delay"],
- [Blockly.Msg.MIXLY_MILLISECOND, "delayMicroseconds"],
- ];
this.setColour(LOOPS_HUE);
this.appendValueInput("DELAY_TIME", Number)
.appendField(Blockly.Msg.MIXLY_DELAY)
- .appendField(new Blockly.FieldDropdown(UNIT), "UNIT")
+ .appendField(new Blockly.FieldDropdown(this.UNIT), "UNIT")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -33,6 +29,10 @@ export const controls_delay = {
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id9"
);
},
+ UNIT: [
+ [Blockly.Msg.MIXLY_MILLIS, "delay"],
+ [Blockly.Msg.MIXLY_MILLISECOND, "delayMicroseconds"],
+ ]
};
export const controls_for = {
@@ -75,7 +75,7 @@ export const controls_for = {
if (Blockly.Names.equals(oldName, this.getFieldValue("VAR"))) {
this.setTitleValue(newName, "VAR");
}
- },
+ }
};
export const controls_whileUntil = {
@@ -101,13 +101,12 @@ export const controls_whileUntil = {
return TOOLTIPS[op];
});
},
+ OPERATORS: [
+ [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, "WHILE"],
+ [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, "UNTIL"]
+ ]
};
-controls_whileUntil.OPERATORS = [
- [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, "WHILE"],
- [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, "UNTIL"],
-];
-
export const controls_flow_statements = {
init: function () {
this.setColour(LOOPS_HUE);
@@ -155,26 +154,25 @@ export const controls_flow_statements = {
this.setWarningText(Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING);
}
},
+ OPERATORS: [
+ [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, "BREAK"],
+ [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, "CONTINUE"],
+ ]
};
-controls_flow_statements.OPERATORS = [
- [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, "BREAK"],
- [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, "CONTINUE"],
-];
-
export const controls_millis = {
init: function () {
- var UNIT = [
- [Blockly.Msg.MIXLY_MILLIS, "millis"],
- [Blockly.Msg.MIXLY_MILLISECOND, "micros"],
- ];
this.setColour(LOOPS_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_RUNTIME)
- .appendField(new Blockly.FieldDropdown(UNIT), "UNIT");
+ .appendField(new Blockly.FieldDropdown(this.UNIT), "UNIT");
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS);
},
+ UNIT: [
+ [Blockly.Msg.MIXLY_MILLIS, "millis"],
+ [Blockly.Msg.MIXLY_MILLISECOND, "micros"],
+ ]
};
export const controls_if = {
@@ -477,7 +475,7 @@ export const controls_if = {
statementConnections[i].reconnect(this, "DO" + i);
}
elseStatementConnection && elseStatementConnection.reconnect(this, "ELSE");
- },
+ }
};
export const controls_if_if = {
@@ -491,7 +489,7 @@ export const controls_if_if = {
this.appendStatementInput("STACK");
this.setTooltip(Blockly.Msg.CONTROLS_IF_IF_TOOLTIP);
this.contextMenu = false;
- },
+ }
};
export const controls_if_elseif = {
@@ -508,7 +506,7 @@ export const controls_if_elseif = {
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP);
this.contextMenu = false;
- },
+ }
};
export const controls_if_else = {
@@ -524,7 +522,7 @@ export const controls_if_else = {
this.setPreviousStatement(true);
this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP);
this.contextMenu = false;
- },
+ }
};
export const controls_switch_case = {
@@ -687,7 +685,7 @@ export const controls_switch_case = {
clauseBlock =
clauseBlock.nextConnection && clauseBlock.nextConnection.targetBlock();
}
- },
+ }
};
export const controls_switch = {
@@ -700,7 +698,7 @@ export const controls_switch = {
this.appendDummyInput().appendField("switch");
this.appendStatementInput("STACK");
this.contextMenu = false;
- },
+ }
};
export const controls_case = {
@@ -714,7 +712,7 @@ export const controls_case = {
this.setPreviousStatement(true);
this.setNextStatement(true);
this.contextMenu = false;
- },
+ }
};
export const controls_default = {
@@ -727,7 +725,7 @@ export const controls_default = {
this.appendDummyInput().appendField("default");
this.setPreviousStatement(true);
this.contextMenu = false;
- },
+ }
};
export const controls_mstimer2 = {
@@ -738,14 +736,15 @@ export const controls_mstimer2 = {
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField("MsTimer2" + Blockly.Msg.MIXLY_MSTIMER2_EVERY);
this.appendDummyInput().appendField("ms");
- this.appendStatementInput("DO").appendField(Blockly.Msg.MIXLY_MSTIMER2_DO);
+ this.appendStatementInput("DO")
+ .appendField(Blockly.Msg.MIXLY_MSTIMER2_DO);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_MSTIMER2);
this.setHelpUrl(
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#MsTimer2"
);
- },
+ }
};
export const controls_mstimer2_start = {
@@ -760,7 +759,7 @@ export const controls_mstimer2_start = {
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id45"
);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_MSTIMER2_START);
- },
+ }
};
export const controls_mstimer2_stop = {
@@ -775,52 +774,56 @@ export const controls_mstimer2_stop = {
this.setHelpUrl(
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id48"
);
- },
+ }
};
export const controls_end_program = {
init: function () {
this.setColour(LOOPS_HUE);
- this.appendDummyInput().appendField(Blockly.Msg.MIXLY_CONTROL_END_PROGRAM);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_CONTROL_END_PROGRAM);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_END_PROGRAM);
- },
+ }
};
export const controls_soft_reset = {
init: function () {
this.setColour(LOOPS_HUE);
- this.appendDummyInput().appendField(Blockly.Msg.SOFT_RESET);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.SOFT_RESET);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_END_PROGRAM);
- },
+ }
};
export const controls_interrupts = {
init: function () {
this.setColour(LOOPS_HUE);
- this.appendDummyInput().appendField(Blockly.Msg.MIXLY_CONTROL_INTERRUPTS);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_CONTROL_INTERRUPTS);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_ALLOW_INTERRUPT);
this.setHelpUrl(
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id51"
);
- },
+ }
};
export const controls_nointerrupts = {
init: function () {
this.setColour(LOOPS_HUE);
- this.appendDummyInput().appendField(Blockly.Msg.MIXLY_CONTROL_NOINTERRUPTS);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_CONTROL_NOINTERRUPTS);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_CONTROL_NOINTERRUPTS);
this.setHelpUrl(
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id55"
);
- },
+ }
};
export const base_delay = controls_delay;
@@ -829,30 +832,12 @@ export const simple_timer = {
init: function () {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SIMPLE_TIMER)
- .appendField(
- new Blockly.FieldDropdown([
- ["1", "1"],
- ["2", "2"],
- ["3", "3"],
- ["4", "4"],
- ["5", "5"],
- ["6", "6"],
- ["7", "7"],
- ["8", "8"],
- ["9", "9"],
- ["10", "10"],
- ["11", "11"],
- ["12", "12"],
- ["13", "13"],
- ["14", "14"],
- ["15", "15"],
- ["16", "16"],
- ]),
- "NO"
- )
+ .appendField(new Blockly.FieldDropdown(this.NUMBER), "NO")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);
- this.appendValueInput("timein").setCheck(null);
- this.appendDummyInput().appendField(Blockly.Msg.MIXLY_mSecond);
+ this.appendValueInput("timein")
+ .setCheck(null);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_mSecond);
this.appendStatementInput("zxhs")
.setCheck(null)
.appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);
@@ -860,7 +845,26 @@ export const simple_timer = {
this.setTooltip();
this.setHelpUrl("");
},
+ NUMBER: [
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"],
+ ["8", "8"],
+ ["9", "9"],
+ ["10", "10"],
+ ["11", "11"],
+ ["12", "12"],
+ ["13", "13"],
+ ["14", "14"],
+ ["15", "15"],
+ ["16", "16"],
+ ]
};
+
//do-while循环
export const do_while = {
init: function () {
@@ -890,32 +894,31 @@ export const super_delay_function1 = {
init: function () {
this.appendDummyInput()
.appendField(Blockly.Msg.super_delay_function)
- .appendField(
- new Blockly.FieldDropdown([
- ["1", "1"],
- ["2", "2"],
- ["3", "3"],
- ["4", "4"],
- ["5", "5"],
- ["6", "6"],
- ["7", "7"],
- ["8", "8"],
- ["9", "9"],
- ["10", "10"],
- ["11", "11"],
- ["12", "12"],
- ["13", "13"],
- ["14", "14"],
- ["15", "15"],
- ["16", "16"],
- ]),
- "number"
- );
- this.appendStatementInput("delay_function").setCheck(null);
+ .appendField(new Blockly.FieldDropdown(this.NUMBER), "number");
+ this.appendStatementInput("delay_function")
+ .setCheck(null);
this.setColour(120);
this.setTooltip(Blockly.Msg.super_delay_function_help);
this.setHelpUrl("");
},
+ NUMBER: [
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"],
+ ["8", "8"],
+ ["9", "9"],
+ ["10", "10"],
+ ["11", "11"],
+ ["12", "12"],
+ ["13", "13"],
+ ["14", "14"],
+ ["15", "15"],
+ ["16", "16"],
+ ]
};
//执行超级延时函数
@@ -923,27 +926,7 @@ export const execute_super_delay_function1 = {
init: function () {
this.appendDummyInput()
.appendField(Blockly.Msg.execute_super_delay_function)
- .appendField(
- new Blockly.FieldDropdown([
- ["1", "1"],
- ["2", "2"],
- ["3", "3"],
- ["4", "4"],
- ["5", "5"],
- ["6", "6"],
- ["7", "7"],
- ["8", "8"],
- ["9", "9"],
- ["10", "10"],
- ["11", "11"],
- ["12", "12"],
- ["13", "13"],
- ["14", "14"],
- ["15", "15"],
- ["16", "16"],
- ]),
- "number"
- );
+ .appendField(new Blockly.FieldDropdown(this.NUMBER), "number");
this.appendValueInput("time_interval")
.setCheck(null)
.appendField(Blockly.Msg.time_interval);
@@ -957,4 +940,22 @@ export const execute_super_delay_function1 = {
this.setTooltip(Blockly.Msg.execute_super_delay_function_help);
this.setHelpUrl("");
},
-};
+ NUMBER: [
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"],
+ ["8", "8"],
+ ["9", "9"],
+ ["10", "10"],
+ ["11", "11"],
+ ["12", "12"],
+ ["13", "13"],
+ ["14", "14"],
+ ["15", "15"],
+ ["16", "16"],
+ ]
+};
\ No newline at end of file
diff --git a/boards/default_src/arduino_avr/blocks/display.js b/boards/default_src/arduino_avr/blocks/display.js
index 8ea7f936..2928a3ac 100644
--- a/boards/default_src/arduino_avr/blocks/display.js
+++ b/boards/default_src/arduino_avr/blocks/display.js
@@ -12,7 +12,7 @@ const { layer } = layui;
const DISPLAY_HUE = 180;
-var DRAWFIll = [
+const DRAWFIll = [
[Blockly.Msg.OLED_HOLLOW, "draw"],
[Blockly.Msg.OLED_SOLID, "fill"]
];
@@ -133,7 +133,17 @@ export const group_lcd_power = {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_DF_LCD)
.appendField(new Blockly.FieldTextInput('mylcd'), 'VAR')
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "display"], [Blockly.Msg.MIXLY_OFF, "noDisplay"], [Blockly.Msg.MIXLY_LCD_STAT_CURSOR, "cursor"], [Blockly.Msg.MIXLY_LCD_STAT_NOCURSOR, "noCursor"], [Blockly.Msg.MIXLY_LCD_STAT_BLINK, "blink"], [Blockly.Msg.MIXLY_LCD_STAT_NOBLINK, "noBlink"], [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"], [Blockly.Msg.MIXLY_LCD_NOBACKLIGHT, "noBacklight"], [Blockly.Msg.MIXLY_LCD_BACKLIGHT, "backlight"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ON, "display"],
+ [Blockly.Msg.MIXLY_OFF, "noDisplay"],
+ [Blockly.Msg.MIXLY_LCD_STAT_CURSOR, "cursor"],
+ [Blockly.Msg.MIXLY_LCD_STAT_NOCURSOR, "noCursor"],
+ [Blockly.Msg.MIXLY_LCD_STAT_BLINK, "blink"],
+ [Blockly.Msg.MIXLY_LCD_STAT_NOBLINK, "noBlink"],
+ [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"],
+ [Blockly.Msg.MIXLY_LCD_NOBACKLIGHT, "noBacklight"],
+ [Blockly.Msg.MIXLY_LCD_BACKLIGHT, "backlight"]
+ ]), "STAT");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -147,7 +157,11 @@ export const display_4digitdisplay_power = {
this.setColour(DISPLAY_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY + "_TM1650")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "displayOn"], [Blockly.Msg.MIXLY_OFF, "displayOff"], [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ON, "displayOn"],
+ [Blockly.Msg.MIXLY_OFF, "displayOff"],
+ [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"]
+ ]), "STAT");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -179,7 +193,10 @@ export const display_4digitdisplay_showDot = {
.appendField(new Blockly.FieldDropdown([["1", "0"], ["2", "1"], ["3", "2"], ["4", "3"]]), "NO")
.appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2)
.appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_DOT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, "true"], [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, "false"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, "true"],
+ [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, "false"]
+ ]), "STAT");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -243,9 +260,12 @@ export const display_TM1637_displayTime = {
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MINUTE);
// .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "displayOn"], [Blockly.Msg.MIXLY_OFF, "displayOff"], [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"]]), "STAT");
- this.appendDummyInput("").appendField(Blockly.Msg.MIXLY_DISPLAY_TM1637_Time_Point).appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "true"], [Blockly.Msg.MIXLY_OFF, "false"]]), "STAT");
-
-
+ this.appendDummyInput("")
+ .appendField(Blockly.Msg.MIXLY_DISPLAY_TM1637_Time_Point)
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ON, "true"],
+ [Blockly.Msg.MIXLY_OFF, "false"]
+ ]), "STAT");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -277,7 +297,12 @@ export const display_TM1637_clearDisplay = {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY + "TM1637")
.appendField(new Blockly.FieldTextInput("display"), "NAME")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"], [Blockly.Msg.MIXLY_LCD_STAT_BLINK, "blink"], [Blockly.Msg.MIXLY_ON, "on"], [Blockly.Msg.MIXLY_OFF, "off"],]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"],
+ [Blockly.Msg.MIXLY_LCD_STAT_BLINK, "blink"],
+ [Blockly.Msg.MIXLY_ON, "on"],
+ [Blockly.Msg.MIXLY_OFF, "off"]
+ ]), "STAT");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_4DIGITDISPLAY_TM1637_CLEARDISPLAY);
@@ -349,7 +374,8 @@ export const MAX7219_init = {
this.setHelpUrl('');
}
};
-var MATRIX_TYPES = [['MAX7219', 'MAX7219'], ['HT16K33', 'HT16K33']];
+
+const MATRIX_TYPES = [['MAX7219', 'MAX7219'], ['HT16K33', 'HT16K33']];
//点阵屏显示点
export const display_Matrix_DrawPixel = {
@@ -386,7 +412,7 @@ export const display_Matrix_DrawPixel = {
//点阵屏 旋转变量
-var display_Rotation_NUM = [
+const display_Rotation_NUM = [
[Blockly.Msg.MIXLY_0DEGREE, "0"],
[Blockly.Msg.MIXLY_90DEGREE, "3"],
[Blockly.Msg.MIXLY_180DEGREE, "2"],
@@ -417,6 +443,7 @@ export const display_Max7219_Rotation = {
this.setTooltip(Blockly.Msg.MIXLY_TOOPTIP_Matrix_HK16T33_ROTATION);
}
};
+
//点阵屏旋转
export const display_Max7219_setPosition = {
init: function () {
@@ -445,6 +472,7 @@ export const display_Max7219_setPosition = {
this.setTooltip(Blockly.Msg.MIXLY_TOOPTIP_Matrix_HK16T33_ROTATION);
}
};
+
//点阵屏旋转
export const display_HT16K33_Rotation = {
init: function () {
@@ -705,7 +733,6 @@ export const display_Matrix_fillScreen = {
}
};
-
//点阵屏预设图案
export const Matrix_img = {
init: function () {
@@ -772,64 +799,71 @@ export const display_Matrix_write = {
}
};
-
//OLED -based on U8G2
//显示-OLED-变量
-
-var LINESELECT = [
+const LINESELECT = [
[Blockly.Msg.OLED_HOR, "H"],
[Blockly.Msg.OLED_VER, "V"]
];
-var FRAMESELECT = [
+
+const FRAMESELECT = [
[Blockly.Msg.OLED_HOLLOW, "drawFrame"],
[Blockly.Msg.OLED_SOLID, "drawBox"]
];
-var CIRCLESELECT = [
+
+const CIRCLESELECT = [
[Blockly.Msg.OLED_HOLLOW, "drawCircle"],
[Blockly.Msg.OLED_SOLID, "drawDisc"]
];
-//
-var RADSELECT = [
+
+const RADSELECT = [
[Blockly.Msg.OLED_HOLLOW, "drawRFrame"],
[Blockly.Msg.OLED_SOLID, "drawRBox"]
];
+
//圆选择
-var CIRCLEOPTELECT = [
+const CIRCLEOPTELECT = [
[Blockly.Msg.OLED_WHOLE_CICILE, "U8G2_DRAW_ALL"],
[Blockly.Msg.OLED_UP_R, "U8G2_DRAW_UPPER_RIGHT"],
[Blockly.Msg.OLED_UP_L, "U8G2_DRAW_UPPER_LEFT"],
[Blockly.Msg.OLED_LOW_R, "U8G2_DRAW_LOWER_RIGHT"],
[Blockly.Msg.OLED_LOW_L, "U8G2_DRAW_LOWER_LEFT"]
];
+
//空心、实心椭圆
-var ELLIPSESELECT = [
+const ELLIPSESELECT = [
[Blockly.Msg.OLED_HOLLOW, "drawEllipse"],
[Blockly.Msg.OLED_SOLID, "drawFilledEllipse"]
];
-var EN_FONT_NAME = [
+
+const EN_FONT_NAME = [
["Times New Roman", "tim"],
["Helvetica", "helv"],
["ncen", "ncen"],
["courier new", "cour"]
];
-var OLED_TYPE = [
+
+const OLED_TYPE = [
["SSD1306(128×64)", "SSD1306_128X64_NONAME"],
["SSD1306(128×32)", "SSD1306_128X32_UNIVISION"],
["SH1106(128×64)", "SH1106_128X64_NONAME"]
];
-var U8G2_TYPE_SSD1306_NOKIA5110 = [
+
+const U8G2_TYPE_SSD1306_NOKIA5110 = [
["SSD1306(128×64)", "SSD1306_128X64_NONAME"],
["LCM12864", "ST7565_NHD_C12864"],
["NOKIA5110", "PCD8544_84X48"]
];
-var ROTATION_TYPE = [
+
+const ROTATION_TYPE = [
[Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + " 0°", "U8G2_R0"],
[Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + " 90°", "U8G2_R1"],
[Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + " 180°", "U8G2_R2"],
[Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + " 270°", "U8G2_R3"],
[Blockly.Msg.MIRROR, "U8G2_MIRROR"]
];
-var EN_FONT_SIZE = [
+
+const EN_FONT_SIZE = [
["08", "08"],
["10", "10"],
["12", "12"],
@@ -837,11 +871,13 @@ var EN_FONT_SIZE = [
["18", "18"],
["24", "24"],
];
-var EN_FONT_STYLE = [
+
+const EN_FONT_STYLE = [
["常规", "R"],
["加粗", "B"]
];
-var CN_FONT_NAME = [
+
+const CN_FONT_NAME = [
[Blockly.Msg.OLED_FONT_chinese1, "_t_chinese1"],
[Blockly.Msg.OLED_FONT_chinese2, "_t_chinese2"],
[Blockly.Msg.OLED_FONT_chinese3, "_t_chinese3"],
@@ -850,7 +886,7 @@ var CN_FONT_NAME = [
[Blockly.Msg.OLED_FONT_gb2312, "_t_gb2312"],
];
-var CN_FONT_SIZE = [
+const CN_FONT_SIZE = [
["12", "wqy12"],
["13", "wqy13"],
["14", "wqy14"],
@@ -858,7 +894,7 @@ var CN_FONT_SIZE = [
["16", "wqy16"],
];
-var ICON_IMAGE = [
+const ICON_IMAGE = [
[{ 'src': require('../media/oled_icons/64.png'), 'width': 24, 'height': 24, 'alt': '64' }, '64'],
[{ 'src': require('../media/oled_icons/65.png'), 'width': 24, 'height': 24, 'alt': '65' }, '65'],
[{ 'src': require('../media/oled_icons/66.png'), 'width': 24, 'height': 24, 'alt': '66' }, '66'],
@@ -1084,7 +1120,7 @@ var ICON_IMAGE = [
[{ 'src': require('../media/oled_icons/286.png'), 'width': 24, 'height': 24, 'alt': '286' }, '286']
];
-var FACE_IMAGE = [
+const FACE_IMAGE = [
[{ 'src': require('../media/oled_icons/face/Eyes/Angry.png'), 'width': 35, 'height': 25, 'alt': 'Angry' }, 'Angry,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x80,0xFF,0xFF,0xFF,0x01,0x00,0x80,0xFF,0xFF,0xFF,0x0F,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0xC0,0x07,0x00,0x00,0x1F,0x00,0xE0,0x03,0x00,0xC0,0x07,0x00,0xE0,0x01,0x00,0x00,0x3C,0x00,0xF0,0x00,0x00,0x00,0x0F,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x78,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0x01,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0x07,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x38,0x00,0xB8,0x1F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x3E,0x00,0x38,0x7F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x80,0x3F,0x00,0x38,0xFC,0x01,0x00,0xE0,0x00,0x0C,0x00,0x00,0xE0,0x3F,0x00,0x38,0xF0,0x07,0x00,0xE0,0x00,0x0C,0x00,0x00,0xF8,0x31,0x00,0x38,0xC0,0x1F,0x00,0xE0,0x00,0x0C,0x00,0x00,0x7E,0x30,0x00,0x38,0x00,0x7F,0x00,0xE0,0x00,0x0C,0x00,0x80,0x1F,0x30,0x00,0x38,0x00,0xFC,0x01,0xE0,0x00,0x0C,0x00,0xE0,0x07,0x30,0x00,0x38,0x00,0xF0,0x07,0xE0,0x00,0x0C,0x00,0xF8,0x01,0x30,0x00,0x38,0x00,0xE0,0x1F,0xE0,0x00,0x0C,0x00,0xFE,0x00,0x30,0x00,0x38,0x00,0xF0,0x7F,0xE0,0x00,0x0C,0x80,0x3F,0x00,0x30,0x00,0x38,0x00,0xF8,0xFF,0xE1,0x00,0x0C,0xE0,0x6F,0x01,0x30,0x00,0x38,0x00,0xFC,0xF9,0xE7,0x00,0x0C,0xF8,0x4F,0x00,0x30,0x00,0x38,0x00,0xFD,0xDD,0xFF,0x00,0x0C,0xFE,0xF7,0x00,0x30,0x00,0x38,0x00,0xFE,0x3F,0xFF,0x00,0x8C,0xFF,0xFF,0x02,0x30,0x00,0x38,0x00,0xFE,0x3F,0xFC,0x00,0xFC,0xFF,0xFF,0x00,0x30,0x00,0x38,0x00,0xFE,0x3F,0xF0,0x00,0xFC,0xF5,0xFF,0x02,0x30,0x00,0x38,0x00,0xFC,0x1F,0xE0,0x00,0x7C,0xF0,0xFF,0x00,0x30,0x00,0x38,0x00,0xFD,0x5F,0xE0,0x00,0x1C,0xE0,0x7F,0x00,0x38,0x00,0x70,0x00,0xF8,0x0F,0x70,0x00,0x1C,0xE8,0x7F,0x01,0x38,0x00,0x70,0x00,0xF0,0x07,0x70,0x00,0x3C,0xC0,0x3F,0x00,0x3C,0x00,0xF0,0x00,0xC0,0x01,0x78,0x00,0x38,0x20,0x4F,0x00,0x1C,0x00,0xE0,0x01,0x20,0x04,0x3C,0x00,0x78,0x80,0x10,0x00,0x1E,0x00,0xC0,0x03,0x00,0x00,0x1E,0x00,0xF0,0x01,0x00,0x80,0x0F,0x00,0x80,0x1F,0x00,0xC0,0x0F,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00'],
[{ 'src': require('../media/oled_icons/face/Eyes/Awake.png'), 'width': 35, 'height': 25, 'alt': 'Awake' }, 'Awake,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x80,0xFF,0xFF,0xFF,0x01,0x00,0x80,0xFF,0xFF,0xFF,0x0F,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0xC0,0x07,0x00,0x00,0x1F,0x00,0xE0,0x03,0x00,0xC0,0x07,0x00,0xE0,0x01,0x00,0x00,0x3C,0x00,0xF0,0x00,0x00,0x00,0x0F,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x3E,0x00,0xF8,0x1F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0xE0,0x3F,0x00,0xF8,0xFF,0x03,0x00,0xE0,0x00,0x0C,0x00,0x80,0xFF,0x3F,0x00,0x38,0xF8,0xFF,0x00,0xE0,0x00,0x0C,0x00,0xFC,0x7F,0x30,0x00,0x38,0x00,0xFF,0x0F,0xE0,0x00,0x0C,0xE0,0xFF,0x03,0x30,0x00,0x38,0x00,0xFC,0xFF,0xE1,0x00,0x0C,0xFE,0x7F,0x00,0x30,0x00,0x38,0x80,0xFE,0xFF,0xFF,0x00,0xFC,0xFF,0xFF,0x00,0x30,0x00,0x38,0x00,0x7E,0x96,0xFF,0x00,0xFC,0x87,0xBF,0x05,0x30,0x00,0x38,0x40,0x7F,0x16,0xF0,0x00,0x3C,0xC0,0x9F,0x03,0x30,0x00,0x38,0x80,0xFF,0x0F,0xE0,0x00,0x0C,0xC0,0xFF,0x03,0x30,0x00,0x38,0x80,0xFF,0x0F,0xE0,0x00,0x0C,0xD0,0xFF,0x0B,0x30,0x00,0x38,0x80,0xFF,0x0F,0xE0,0x00,0x0C,0xC0,0xFF,0x03,0x30,0x00,0x38,0x80,0xFF,0x0F,0xE0,0x00,0x0C,0xD0,0xFF,0x0B,0x30,0x00,0x38,0x40,0xFF,0x17,0xE0,0x00,0x0C,0xC0,0xFF,0x03,0x30,0x00,0x38,0x00,0xFF,0x03,0xE0,0x00,0x0C,0xA0,0xFF,0x05,0x30,0x00,0x38,0x80,0xFE,0x0B,0xE0,0x00,0x0C,0x00,0xFF,0x00,0x30,0x00,0x38,0x00,0xF8,0x00,0xE0,0x00,0x0C,0x00,0x7E,0x00,0x30,0x00,0x38,0x00,0x02,0x02,0xE0,0x00,0x0C,0x00,0x81,0x00,0x30,0x00,0x38,0x00,0x50,0x00,0xE0,0x00,0x0C,0x00,0x14,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0xF0,0x00,0x00,0x00,0x78,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0xE0,0x01,0x00,0x00,0x3C,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0xC0,0x03,0x00,0x00,0x1E,0x00,0xF0,0x01,0x00,0x80,0x0F,0x00,0x80,0x1F,0x00,0xC0,0x0F,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00'],
[{ 'src': require('../media/oled_icons/face/Eyes/Black eye.png'), 'width': 35, 'height': 25, 'alt': 'Black_eye' }, 'Black_eye,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xF8,0xFF,0x7F,0x00,0x00,0xE0,0x03,0x00,0xC0,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0xF0,0x00,0x00,0x00,0x0F,0x00,0x80,0xFF,0xFF,0xFF,0x0F,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0xC0,0x5F,0x55,0xD5,0x1F,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0xE0,0x4B,0xAA,0xA4,0x3E,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0xE0,0xB5,0x55,0x5B,0x3D,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0xF0,0x4A,0xAA,0xA4,0x7A,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0xF0,0xB6,0x55,0x5B,0x75,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x78,0x49,0xAA,0x24,0xF5,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xB8,0xB6,0x55,0xDB,0xEA,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x78,0x49,0xAA,0x24,0xF5,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xB8,0xB6,0x55,0xDB,0xEA,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x49,0xAA,0x24,0xF5,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0xB6,0x55,0xDB,0xEA,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x49,0xAA,0x24,0xE9,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0x0C,0x00,0x42,0x00,0x30,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0x0C,0x80,0x1C,0x01,0x30,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0x0C,0x00,0xFE,0x00,0x30,0x00,0x38,0x00,0xFE,0x03,0xE0,0x00,0x0C,0xA0,0xBF,0x05,0x30,0x00,0x38,0x00,0x7F,0x06,0xE0,0x00,0x0C,0x80,0x3F,0x01,0x30,0x00,0x38,0x40,0x7F,0x17,0xE0,0x00,0x0C,0xC0,0xDF,0x03,0x30,0x00,0x38,0x80,0xFF,0x0F,0xE0,0x00,0x0C,0xD0,0xFF,0x0B,0x30,0x00,0x38,0x80,0xFF,0x0F,0xE0,0x00,0x0C,0xC0,0xFF,0x03,0x30,0x00,0x38,0x80,0xFF,0x0F,0xE0,0x00,0x0C,0xD0,0xFF,0x0B,0x30,0x00,0x38,0x40,0xFF,0x17,0xE0,0x00,0x0C,0xC0,0xFF,0x03,0x30,0x00,0x38,0x00,0xFF,0x07,0xE0,0x00,0x0C,0x80,0xFF,0x01,0x30,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0x0C,0xA0,0xFF,0x05,0x30,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0x0C,0x00,0xFF,0x00,0x30,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0x0C,0x80,0x3C,0x01,0x30,0x00,0xB8,0xAA,0xAA,0xAA,0xEA,0x00,0x0C,0x00,0x42,0x00,0x30,0x00,0xB8,0x2A,0x49,0xAA,0xEA,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x78,0xD5,0xB6,0x55,0xF5,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xB8,0x2A,0x49,0xAA,0xEA,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0xD2,0xB6,0x55,0xF5,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x70,0x2D,0x49,0xAA,0x75,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF0,0xD2,0xB6,0x55,0x7A,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0xE0,0x2D,0x49,0xAA,0x3D,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0xE0,0xD3,0xB6,0x55,0x3E,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0xC0,0x2F,0x49,0xD2,0x1F,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x80,0xFF,0xFF,0xFF,0x0F,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0xF0,0x01,0x00,0x80,0x0F,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00'],
@@ -1128,14 +1164,16 @@ var FACE_IMAGE = [
[{ 'src': require('../media/oled_icons/face/Expressions/Wink.png'), 'width': 35, 'height': 25, 'alt': 'Wink' }, 'Wink,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x00,0xE0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0xF0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0x00,0xF0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x10,0x00,0xF0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xC0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x7E,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x3F,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00'],
[{ 'src': require('../media/oled_icons/face/Expressions/ZZZ.png'), 'width': 35, 'height': 25, 'alt': 'ZZZ' }, 'ZZZ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0x00,0x00,0xFE,0x3A,0x00,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0xF0,0xFF,0x3F,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0xF0,0xFF,0x3F,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x01,0x00,0x00,0xE0,0xEF,0x1F,0x00,0x00,0x00,0xFE,0xFF,0xBF,0x01,0x00,0x00,0x20,0xE0,0x0F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x81,0xFF,0x3F,0x00,0xF0,0x07,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x81,0xFF,0x6F,0x00,0xF8,0x07,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x81,0xFF,0x5F,0x00,0xF8,0x03,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x81,0xFF,0x7F,0x00,0xFC,0x03,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x81,0xFF,0x3F,0x00,0xFC,0x01,0x00,0x00,0x00,0x00,0xC0,0xFF,0x01,0xDF,0x3F,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0xC0,0x1F,0x00,0xFE,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x0F,0x00,0xFF,0xBE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x07,0x80,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x03,0x80,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x01,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x80,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x80,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x87,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x8D,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0x02,0x00,0x00,0xC0,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00'],
];
+
//图标尺寸
-var ICON_SIZE = [
+const ICON_SIZE = [
["8", "1"],
["16", "2"],
["32", "4"],
["48", "6"],
["64", "8"],
];
+
//显示-OLED-初始化(iic)
export const oled_init = {
init: function () {
@@ -1160,6 +1198,7 @@ export const oled_init = {
this.setFieldValue(Profile.default.SDA[0][1], "SDA");
}
};
+
export const u8g2_spi_init = {
init: function () {
this.setColour(DISPLAY_HUE);
@@ -1193,6 +1232,7 @@ export const u8g2_spi_init = {
this.setFieldValue(Profile.default.MOSI[0][1], "MOSI");
}
};
+
export const u8g2_LCD12864_spi_init = {
init: function () {
this.setColour(DISPLAY_HUE);
@@ -1218,6 +1258,7 @@ export const u8g2_LCD12864_spi_init = {
this.setHelpUrl("");
}
};
+
export const u8g2_LCD12864_8080_init = {
init: function () {
this.setColour(DISPLAY_HUE);
@@ -1256,6 +1297,7 @@ export const u8g2_LCD12864_8080_init = {
this.setHelpUrl("");
}
};
+
//显示-OLED-清屏幕
export const oled_clear = {
init: function () {
@@ -1280,13 +1322,12 @@ export const oled_define_bitmap_data = {
.appendField(Blockly.Msg.OLED_BITMAP_NAME)
.appendField(new Blockly.FieldTextInput('bitmap1'), 'VAR')
.appendField(Blockly.Msg.OLED_BITMAP_DATA)
- // .appendField(new Blockly.FieldTextInput('0x80,0x00,0x84,0x10,0x88,0x10,0x90,0x08,0x90,0x04,0x80,0x00,0xFE,0x3F,0xC0,0x01, 0xA0,0x02,0xA0,0x02,0x90,0x04,0x88,0x08,0x84,0x10,0x83,0x60,0x80,0x00,0x80,0x00'), 'TEXT');
- .appendField(new Blockly.FieldTextInput('0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x80,0xFF,0xFF,0xFF,0x01,0x00,0x80,0xFF,0xFF,0xFF,0x0F,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0xC0,0x07,0x00,0x00,0x1F,0x00,0xE0,0x03,0x00,0xC0,0x07,0x00,0xE0,0x01,0x00,0x00,0x3C,0x00,0xF0,0x00,0x00,0x00,0x0F,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0x78,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0x01,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x30,0x00,0xF8,0x07,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x38,0x00,0xB8,0x1F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x3E,0x00,0x38,0x7F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x80,0x3F,0x00,0x38,0xFC,0x01,0x00,0xE0,0x00,0x0C,0x00,0x00,0xE0,0x3F,0x00,0x38,0xF0,0x07,0x00,0xE0,0x00,0x0C,0x00,0x00,0xF8,0x31,0x00,0x38,0xC0,0x1F,0x00,0xE0,0x00,0x0C,0x00,0x00,0x7E,0x30,0x00,0x38,0x00,0x7F,0x00,0xE0,0x00,0x0C,0x00,0x80,0x1F,0x30,0x00,0x38,0x00,0xFC,0x01,0xE0,0x00,0x0C,0x00,0xE0,0x07,0x30,0x00,0x38,0x00,0xF0,0x07,0xE0,0x00,0x0C,0x00,0xF8,0x01,0x30,0x00,0x38,0x00,0xE0,0x1F,0xE0,0x00,0x0C,0x00,0xFE,0x00,0x30,0x00,0x38,0x00,0xF0,0x7F,0xE0,0x00,0x0C,0x80,0x3F,0x00,0x30,0x00,0x38,0x00,0xF8,0xFF,0xE1,0x00,0x0C,0xE0,0x6F,0x01,0x30,0x00,0x38,0x00,0xFC,0xF9,0xE7,0x00,0x0C,0xF8,0x4F,0x00,0x30,0x00,0x38,0x00,0xFD,0xDD,0xFF,0x00,0x0C,0xFE,0xF7,0x00,0x30,0x00,0x38,0x00,0xFE,0x3F,0xFF,0x00,0x8C,0xFF,0xFF,0x02,0x30,0x00,0x38,0x00,0xFE,0x3F,0xFC,0x00,0xFC,0xFF,0xFF,0x00,0x30,0x00,0x38,0x00,0xFE,0x3F,0xF0,0x00,0xFC,0xF5,0xFF,0x02,0x30,0x00,0x38,0x00,0xFC,0x1F,0xE0,0x00,0x7C,0xF0,0xFF,0x00,0x30,0x00,0x38,0x00,0xFD,0x5F,0xE0,0x00,0x1C,0xE0,0x7F,0x00,0x38,0x00,0x70,0x00,0xF8,0x0F,0x70,0x00,0x1C,0xE8,0x7F,0x01,0x38,0x00,0x70,0x00,0xF0,0x07,0x70,0x00,0x3C,0xC0,0x3F,0x00,0x3C,0x00,0xF0,0x00,0xC0,0x01,0x78,0x00,0x38,0x20,0x4F,0x00,0x1C,0x00,0xE0,0x01,0x20,0x04,0x3C,0x00,0x78,0x80,0x10,0x00,0x1E,0x00,0xC0,0x03,0x00,0x00,0x1E,0x00,0xF0,0x01,0x00,0x80,0x0F,0x00,0x80,0x1F,0x00,0xC0,0x0F,0x00,0xE0,0x07,0x00,0xE0,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00'), 'TEXT');
+ .appendField(new Blockly.FieldTextInput(''), 'TEXT');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.OLED_DEF_BMP_DATA_TOOLTIP);
}
-}
+};
//显示-OLED-设置图标
export const oled_icons = {
@@ -1658,6 +1699,7 @@ export const oled_set_EN_Font = {
this.setTooltip(Blockly.Msg.oled_setFont_tooltip);
}
};
+
//显示-OLED-设置字体
export const oled_set_CN_Font = {
init: function () {
@@ -1676,6 +1718,7 @@ export const oled_set_CN_Font = {
this.setTooltip(Blockly.Msg.oled_setFont_tooltip);
}
};
+
//显示-OLED-设置字体
export const oled_set_ZH_TW_Font = {
init: function () {
@@ -1690,6 +1733,7 @@ export const oled_set_ZH_TW_Font = {
this.setTooltip(Blockly.Msg.oled_setFont_tooltip);
}
};
+
//显示-OLED-显示字符串
export const oled_print = {
init: function () {
@@ -1762,13 +1806,23 @@ export const lcd_display_pattern = {
.appendField(Blockly.Msg.COLUMN_DISPLAY_IMAGE);
this.appendDummyInput()
.appendField(Blockly.Msg.LCD_NUMBERING)
- .appendField(new Blockly.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"], ["7", "7"]]), "number");
+ .appendField(new Blockly.FieldDropdown(this.NUMBER), "number");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(DISPLAY_HUE);
this.setTooltip("");
this.setHelpUrl("https://www.arduino.cc/en/Reference/LiquidCrystalCreateChar");
- }
+ },
+ NUMBER: [
+ ["0", "0"],
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"]
+ ]
};
//点阵屏显示_图案数组
@@ -1905,7 +1959,48 @@ export const TFT_st7735_show_hz = {
.appendField(Blockly.Msg.TFT_DISPLAY_CHINESE_CHARACTERS);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NAME)
- .appendField(new Blockly.FieldDropdown([["华文黑体", "STHeiti"], ["华文楷体", "STKaiti"], ["华文细黑", "STXihei"], ["华文宋体", "STSong"], ["华文中宋", "STZhongsong"], ["华文仿宋", "STFangsong"], ["华文彩云", "STCaiyun"], ["华文琥珀", "STHupo"], ["华文隶书", "STLiti"], ["华文行楷", "STXingkai"], ["华文新魏", "STXinwei"], ["黑体", "simHei"], ["宋体", "simSun"], ["新宋体", "NSimSun"], ["仿宋", "FangSong"], ["楷体", "KaiTi"], ["仿宋_GB2312", "FangSong_GB2312"], ["楷体_GB2312", "KaiTi_GB2312"], ["隶书", "LiSu"], ["幼圆", "YouYuan"], ["新细明体", "PMingLiU"], ["细明体", "MingLiU"], ["标楷体", "DFKai-SB"], ["微软正黑体", "Microsoft JhengHei"], ["微软雅黑体", "Microsoft YaHei"], ["AcadEref", "AcadEref"], ["Adobe Ming Std L", "Adobe Ming Std L"], ["Adobe Myungjo Std M", "Adobe Myungjo Std M"], ["Adobe Pi Std", "Adobe Pi Std"], ["AIGDT", "AIGDT"], ["AIgerian", "AIgerian"], ["AmdtSymbols", "AmdtSymbols"], ["Arial", "Arial"], ["Arial Rounded MT Bold", "Arial Rounded MT Bold"], ["Arial Unicode MS", "Arial Unicode MS"], ["BankGothic Lt BT", "BankGothic Lt BT"], ["BankGothic Md BT", "BankGothic Md BT"], ["Baskerville Old Face", "Baskerville Old Face"], ["Bauhaus 93", "Bauhaus 93"], ["Beranad MT Condensed", "Beranad MT Condensed"]]), "st7735_hz_sharp")
+ .appendField(new Blockly.FieldDropdown([
+ ["华文黑体", "STHeiti"],
+ ["华文楷体", "STKaiti"],
+ ["华文细黑", "STXihei"],
+ ["华文宋体", "STSong"],
+ ["华文中宋", "STZhongsong"],
+ ["华文仿宋", "STFangsong"],
+ ["华文彩云", "STCaiyun"],
+ ["华文琥珀", "STHupo"],
+ ["华文隶书", "STLiti"],
+ ["华文行楷", "STXingkai"],
+ ["华文新魏", "STXinwei"],
+ ["黑体", "simHei"],
+ ["宋体", "simSun"],
+ ["新宋体", "NSimSun"],
+ ["仿宋", "FangSong"],
+ ["楷体", "KaiTi"],
+ ["仿宋_GB2312", "FangSong_GB2312"],
+ ["楷体_GB2312", "KaiTi_GB2312"],
+ ["隶书", "LiSu"],
+ ["幼圆", "YouYuan"],
+ ["新细明体", "PMingLiU"],
+ ["细明体", "MingLiU"],
+ ["标楷体", "DFKai-SB"],
+ ["微软正黑体", "Microsoft JhengHei"],
+ ["微软雅黑体", "Microsoft YaHei"],
+ ["AcadEref", "AcadEref"],
+ ["Adobe Ming Std L", "Adobe Ming Std L"],
+ ["Adobe Myungjo Std M", "Adobe Myungjo Std M"],
+ ["Adobe Pi Std", "Adobe Pi Std"],
+ ["AIGDT", "AIGDT"],
+ ["AIgerian", "AIgerian"],
+ ["AmdtSymbols", "AmdtSymbols"],
+ ["Arial", "Arial"],
+ ["Arial Rounded MT Bold", "Arial Rounded MT Bold"],
+ ["Arial Unicode MS", "Arial Unicode MS"],
+ ["BankGothic Lt BT", "BankGothic Lt BT"],
+ ["BankGothic Md BT", "BankGothic Md BT"],
+ ["Baskerville Old Face", "Baskerville Old Face"],
+ ["Bauhaus 93", "Bauhaus 93"],
+ ["Beranad MT Condensed", "Beranad MT Condensed"]
+ ]), "st7735_hz_sharp")
.appendField(" " + Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM)
.appendField(new Blockly.FieldTextInput("16"), "st7735_hz_line_height")
.appendField("px")
@@ -1943,6 +2038,7 @@ export const TFT_st7735_show_hz = {
this.setHelpUrl("");
}
};
+
export const TFT_Brightness = {
init: function () {
this.setColour(DISPLAY_HUE);
@@ -2001,7 +2097,6 @@ export const TFT_init = {
}
};
-
export const TFT_fillScreen = {
init: function () {
this.setColour(DISPLAY_HUE);
@@ -2018,13 +2113,6 @@ export const TFT_fillScreen = {
}
};
-var display_Rotation_NUM = [
- [Blockly.Msg.MIXLY_0DEGREE, "0"],
- [Blockly.Msg.MIXLY_90DEGREE, "1"],
- [Blockly.Msg.MIXLY_180DEGREE, "2"],
- [Blockly.Msg.MIXLY_270DEGREE, "3"]
-];
-
export const TFT_Rotation = {
init: function () {
this.setColour(DISPLAY_HUE);
@@ -2033,12 +2121,18 @@ export const TFT_Rotation = {
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE)
- .appendField(new Blockly.FieldDropdown(display_Rotation_NUM), "Rotation_TYPE");
+ .appendField(new Blockly.FieldDropdown(this.ROTATION_TYPE), "Rotation_TYPE");
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOPTIP_Matrix_HK16T33_ROTATION);
- }
+ },
+ ROTATION_TYPE: [
+ [Blockly.Msg.MIXLY_0DEGREE, "0"],
+ [Blockly.Msg.MIXLY_90DEGREE, "1"],
+ [Blockly.Msg.MIXLY_180DEGREE, "2"],
+ [Blockly.Msg.MIXLY_270DEGREE, "3"]
+ ]
};
//显示-TFT-定义字模名称和数据
@@ -2050,7 +2144,7 @@ export const tft_define_bitmap_data = {
.appendField(Blockly.Msg.OLED_BITMAP_NAME)
.appendField(new Blockly.FieldTextInput('bitmap1'), 'VAR')
.appendField(Blockly.Msg.OLED_BITMAP_DATA)
- .appendField(new Blockly.FieldTextInput('0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x009f, 0x9f00, 0x989c, 0x009a, 0x9f00, 0x9c9e, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x009d, 0xa100, 0x9da1, 0x0099, 0x9e00, 0x989e, 0x009c, 0x9c00, 0x7f7f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0xa300, 0x989e, 0x0096, 0x9e00, 0x989d, 0x0098, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x989d, 0x0099, 0x9e00, 0x979c, 0x0098, 0x9c00, 0x7faa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x989c, 0x0099, 0x9e00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9d00, 0x999e, 0x009d, 0x9d00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0098, 0xa000, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0098, 0x9e00, 0x969c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9aa1, 0x0096, 0x9e00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979d, 0x008d, 0x9b00, 0x0000, 0x007f, 0x7f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0098, 0x9d00, 0x0000, 0x0095, 0x9c00, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0096, 0x9b00, 0x949b, 0x0099, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x999f, 0x0098, 0x9b00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x999d, 0x0096, 0x9b00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979b, 0x0099, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x999d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x979c, 0x0899, 0x9e0e, 0x9ca1, 0x0c9b, 0x9f04, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0x0095, 0x9a04, 0x989d, 0x119d, 0xa21e, 0xa2a6, 0x2faa, 0xae47, 0xb3b7, 0x5bbb, 0xbe6d, 0xc3c6, 0x42b1, 0xb500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c2b, 0xa8ac, 0x7fca, 0xcdbf, 0xe4e6, 0xe6f5, 0xf6f3, 0xfafa, 0xf1f9, 0xfad6, 0xeeef, 0x93d2, 0xd525, 0xa5aa, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0096, 0x9b00, 0x969b, 0x0699, 0x9e0e, 0x9ca1, 0x169f, 0xa424, 0xa5aa, 0x36ac, 0xb045, 0xb2b6, 0x52b8, 0xbb64, 0xbfc2, 0x77c6, 0xc984, 0xccce, 0x98d4, 0xd7ac, 0xdcde, 0xbbe3, 0xe5d0, 0xeced, 0xe2f3, 0xf4ed, 0xf8f8, 0xf7fc, 0xfcff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x3cae, 0xb200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0598, 0x9d52, 0xb7bb, 0xbfe4, 0xe6fc, 0xfefe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff6, 0xfbfc, 0x6bc2, 0xc501, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c03, 0x989d, 0x4ab5, 0xb859, 0xbabd, 0x5fbc, 0xc068, 0xc0c3, 0x72c5, 0xc881, 0xcbce, 0x92d1, 0xd4a1, 0xd7d9, 0xaede, 0xdfc1, 0xe5e7, 0xd3ed, 0xeedd, 0xf1f2, 0xe7f5, 0xf6f2, 0xfafa, 0xfafd, 0xfdfc, 0xfefe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdd, 0xf1f2, 0x0398, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0398, 0x9d4c, 0xb5b9, 0xcdeb, 0xecfe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdfe, 0xfe6d, 0xc3c6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c10, 0x9ca1, 0xf9fd, 0xfdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff90, 0xd1d3, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c2a, 0xa7ab, 0xb9e2, 0xe3fe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff7, 0xfcfc, 0x35ab, 0xb000, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0d, 0x9ba0, 0xf5fb, 0xfbff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff47, 0xb3b7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c07, 0x999e, 0x7ac8, 0xcaf6, 0xfbfb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbbe3, 0xe401, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c06, 0x999e, 0xecf7, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf1f9, 0xfa0f, 0x9ca1, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x24a5, 0xa9c9, 0xe9ea, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeff, 0xff38, 0xadb1, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0xd8f0, 0xf0ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb6e0, 0xe200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c4e, 0xb6ba, 0xebf7, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff95, 0xd3d6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xabdc, 0xdeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x74c5, 0xc800, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c02, 0x989c, 0x6fc3, 0xc6f9, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffde, 0xf2f2, 0x0598, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0x0398, 0x9d04, 0x989d, 0x0096, 0x9b00, 0x969b, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x62be, 0xc1ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x3bae, 0xb200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0398, 0x9d88, 0xced1, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffc, 0xfefe, 0x26a6, 0xaa00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0d, 0x9ba0, 0x43b2, 0xb582, 0xccce, 0xb2df, 0xe1d7, 0xefef, 0xe5f4, 0xf5e7, 0xf5f6, 0xdff2, 0xf2c4, 0xe7e8, 0x98d4, 0xd657, 0xbabd, 0x18a0, 0xa400, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x089a, 0x9f77, 0xc6c9, 0x9dd5, 0xd7ac, 0xdddf, 0xc2e6, 0xe8d7, 0xeff0, 0xe5f5, 0xf5f7, 0xfcfc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff0, 0xf9f9, 0x109d, 0xa100, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c02, 0x979d, 0x91d2, 0xd4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x5dbc, 0xbf00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c2e, 0xa9ad, 0x9bd6, 0xd7e8, 0xf6f6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf2fa, 0xfaa6, 0xdadc, 0x2aa7, 0xab00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0096, 0x9b00, 0x969b, 0x0398, 0x9d13, 0x9ea3, 0x72c5, 0xc7f6, 0xfbfc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffcb, 0xeaeb, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0297, 0x9c87, 0xcdd0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x90d1, 0xd300, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c23, 0xa4a9, 0xa5da, 0xdbfa, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf8fc, 0xfc8a, 0xced1, 0x0b9b, 0xa000, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c65, 0xc0c3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff9d, 0xd7d8, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x6dc2, 0xc5fd, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb2df, 0xe100, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c05, 0x999e, 0x6dc2, 0xc5f2, 0xfafa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc9e9, 0xea1c, 0xa2a6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0b, 0x9b9f, 0xebf7, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff6d, 0xc3c5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c4a, 0xb4b8, 0xf9fd, 0xfdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd2ec, 0xed00, 0x969b, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x169f, 0xa4b6, 0xe0e2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdd, 0xf1f1, 0x22a3, 0xa800, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0xc9e9, 0xeaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff3e, 0xb0b4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x21a3, 0xa8ea, 0xf6f7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe2f3, 0xf405, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c2a, 0xa7ab, 0xd7ee, 0xefff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd7ee, 0xef15, 0x9fa4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb8e2, 0xe3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcfe, 0xfe1d, 0xa2a6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c07, 0x999e, 0xc1e5, 0xe6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xeff9, 0xf90d, 0x9ba0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x31aa, 0xaee7, 0xf5f6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffb4, 0xe0e1, 0x0498, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb7e2, 0xe3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xedf8, 0xf805, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c76, 0xc6c9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7fc, 0xfc13, 0x9da2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c31, 0xaaae, 0xe9f6, 0xf6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x64be, 0xc200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb6e1, 0xe3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcfec, 0xed01, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x2aa7, 0xacf5, 0xfbfb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf9fd, 0xfd17, 0xa0a5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x26a6, 0xaae4, 0xf4f4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xebf7, 0xf715, 0x9fa4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb4e0, 0xe2ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb5e0, 0xe200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c03, 0x989d, 0xb9e2, 0xe4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf9fd, 0xfd1a, 0xa2a6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c13, 0x9ea3, 0xd4ed, 0xeeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff82, 0xcbce, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb1df, 0xe1ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ad5, 0xd700, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c52, 0xb8bb, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfafd, 0xfd1d, 0xa2a7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0599, 0x9eb3, 0xdfe1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffe7, 0xf5f6, 0x0a9a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xa7db, 0xddff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x81cb, 0xcd00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x099a, 0x9fd7, 0xefef, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf9fd, 0xfd18, 0xa1a5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x80cb, 0xcdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x57ba, 0xbd00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x9dd6, 0xd8ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6dc3, 0xc600, 0x979c, 0x0097, 0x9c00, 0x979c, 0x60bd, 0xc1ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf8fc, 0xfc15, 0x9fa3, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c4c, 0xb5b9, 0xfcfe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xa2d9, 0xda00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x95d2, 0xd5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x5cbc, 0xbf00, 0x979c, 0x0097, 0x9c08, 0x999e, 0xdbf0, 0xf1ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7fc, 0xfc13, 0x9da2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x1fa3, 0xa7e8, 0xf5f6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xddf1, 0xf205, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x87cd, 0xd0ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x4fb6, 0xba00, 0x979c, 0x0097, 0x9c5b, 0xbbbf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xeff9, 0xf90d, 0x9ba0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c06, 0x999e, 0xc0e5, 0xe7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf9fd, 0xfd1b, 0xa1a6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x78c7, 0xcaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x46b2, 0xb600, 0x979c, 0x0398, 0x9dc9, 0xe9ea, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe4f4, 0xf506, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c7e, 0xcacc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff3b, 0xaeb2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x66c0, 0xc3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x41b0, 0xb400, 0x979c, 0x38ad, 0xb1fe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeff, 0xffe8, 0xf6f6, 0xd1ec, 0xede7, 0xf5f6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdaf0, 0xf101, 0x979c, 0x0097, 0x9c00, 0x979c, 0x3caf, 0xb3f9, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff2, 0xfafa, 0xc3e6, 0xe8b8, 0xe2e3, 0xeff9, 0xf9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff5b, 0xbbbe, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x58b9, 0xbdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3caf, 0xb200, 0x979c, 0x9dd7, 0xd9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffd3, 0xecee, 0x4bb5, 0xb807, 0x999e, 0x0096, 0x9b07, 0x999e, 0x62be, 0xc1f3, 0xfafa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcbe9, 0xeb00, 0x969b, 0x0097, 0x9c0e, 0x9ca1, 0xd7ee, 0xefff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffe7, 0xf5f6, 0x6cc2, 0xc512, 0x9da2, 0x0096, 0x9b00, 0x969b, 0x19a0, 0xa5ce, 0xebec, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff6a, 0xc1c4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x44b2, 0xb6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x38ad, 0xb110, 0x9da1, 0xecf7, 0xf8ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb6e1, 0xe20f, 0x9da1, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c59, 0xbabd, 0xfdfe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xafde, 0xe000, 0x979c, 0x0197, 0x9c90, 0xd1d4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbde4, 0xe519, 0xa0a5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c43, 0xb1b5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff72, 0xc5c8, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x2ea9, 0xadff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x37ad, 0xb054, 0xb8bb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbd, 0xe4e5, 0x0a9b, 0xa000, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c02, 0x979d, 0xb6e0, 0xe2ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x98d4, 0xd600, 0x979c, 0x3aae, 0xb2fa, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffa4, 0xd9db, 0x0899, 0x9e00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c07, 0x999e, 0xe9f6, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff70, 0xc4c7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x1fa3, 0xa7fa, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x3dae, 0xb2ae, 0xdedf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe4f4, 0xf41a, 0xa1a5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x48b4, 0xb7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7bc8, 0xcb05, 0x989d, 0xc9e9, 0xeaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xaadb, 0xdd07, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x979b, 0xcbea, 0xebff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff69, 0xc1c3, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0f9c, 0xa1f1, 0xfafa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x5ab9, 0xbcf2, 0xfafa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffd, 0xfefe, 0x51b7, 0xba00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0699, 0x9de5, 0xf4f5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x60bd, 0xc06a, 0xc2c5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffca, 0xe9ea, 0x0c9c, 0xa100, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xbae3, 0xe4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff57, 0xb9bd, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0698, 0x9de4, 0xf4f4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb2df, 0xe1ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffb4, 0xe0e1, 0x0298, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c9f, 0xd7d9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x4db5, 0xb8e3, 0xf4f4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe7f6, 0xf61e, 0xa2a7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xbce3, 0xe5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff3b, 0xaeb2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0297, 0x9ccd, 0xeaeb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfefe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf9fc, 0xfd2c, 0xa8ad, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c66, 0xc0c3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffd, 0xfeff, 0x9ad5, 0xd7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffd, 0xfefe, 0x4eb6, 0xba00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x969c, 0xc9e9, 0xeaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfafd, 0xfd20, 0xa3a8, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9cb5, 0xe0e2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xa3d9, 0xdb00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c38, 0xadb1, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffa, 0xfdfd, 0xf0f9, 0xf9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff99, 0xd5d7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c02, 0x969b, 0xdff2, 0xf3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe8f6, 0xf609, 0x9a9e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c95, 0xd3d5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffc, 0xfefe, 0x32aa, 0xae00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c17, 0xa0a4, 0xf7fc, 0xfcff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdff2, 0xf312, 0x9da2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0b, 0x9ba0, 0xf1f9, 0xf9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbce4, 0xe500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c78, 0xc7ca, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbc, 0xe3e5, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c08, 0x999e, 0xe9f6, 0xf6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x52b8, 0xbb00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c26, 0xa6aa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x81cb, 0xcd00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c56, 0xb9bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff50, 0xb7ba, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x979c, 0xd4ed, 0xeeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffb6, 0xe1e2, 0x0297, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c54, 0xb8bc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3bae, 0xb200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c31, 0xabaf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe6f5, 0xf50c, 0x9ba0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0xc2e6, 0xe7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf8fc, 0xfc2d, 0xa9ad, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c87, 0xcdd0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffe1, 0xf3f3, 0x0498, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c13, 0x9ea2, 0xfafd, 0xfdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9bd6, 0xd800, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb0df, 0xe0ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8fd1, 0xd300, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9cbb, 0xe3e4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff8c, 0xd0d2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c02, 0x979c, 0xe2f3, 0xf4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x49b4, 0xb700, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xa1d9, 0xdbff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffee, 0xf8f8, 0x1aa1, 0xa600, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0b9b, 0x9fe9, 0xf6f6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcfe, 0xfe30, 0xaaae, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0xbee4, 0xe6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffed, 0xf8f8, 0x0a9a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x98d4, 0xd6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff83, 0xcbce, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x35ac, 0xb0fe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbde4, 0xe502, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x99d5, 0xd7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffb0, 0xdee0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x94d2, 0xd4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe9f6, 0xf612, 0x9da2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x75c6, 0xc8ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x48b4, 0xb700, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x71c4, 0xc7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff70, 0xc4c6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x93d2, 0xd4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x80ca, 0xcd00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xc0e5, 0xe7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffc7, 0xe8e9, 0x0498, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x47b3, 0xb7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeff, 0xff37, 0xadb1, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x93d2, 0xd4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff2, 0xfafa, 0x169f, 0xa400, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c17, 0xa0a4, 0xf7fc, 0xfcff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeff, 0xff49, 0xb4b8, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x21a4, 0xa8fc, 0xfefe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf1f9, 0xfa0d, 0x9ba0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x96d3, 0xd5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff90, 0xd1d3, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c59, 0xbbbe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb1df, 0xe001, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0899, 0x9eea, 0xf7f7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xccea, 0xeb00, 0x969b, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x99d5, 0xd7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf9fd, 0xfd29, 0xa7ab, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9ca8, 0xdbdd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff5, 0xfbfb, 0x28a7, 0xab00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0096, 0x9bc3, 0xe6e8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x99d5, 0xd700, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x9dd7, 0xd9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbae2, 0xe301, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0c9b, 0xa0ed, 0xf8f8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff76, 0xc6c9, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c90, 0xd1d3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6dc3, 0xc500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xa7db, 0xddff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x4eb6, 0xb900, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x52b8, 0xbbff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc5e7, 0xe807, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c5a, 0xbabe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x46b3, 0xb700, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb8e2, 0xe3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffe1, 0xf3f3, 0x089a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xabdc, 0xdeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffec, 0xf7f8, 0x24a4, 0xa900, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c29, 0xa7ab, 0xfdfe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3eb0, 0xb400, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0xc8e8, 0xe9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff8b, 0xcfd1, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c12, 0x9ea2, 0xeff9, 0xf9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcfe, 0xfe54, 0xb8bc, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c09, 0x9a9f, 0xe7f5, 0xf6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x53b8, 0xbc00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x979c, 0xd2ed, 0xeeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeff, 0xff33, 0xabaf, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c5a, 0xbbbe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x81ca, 0xcd01, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb7e1, 0xe3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6ec3, 0xc600, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c06, 0x999e, 0xe4f4, 0xf5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd3ed, 0xee02, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9cba, 0xe3e4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffab, 0xddde, 0x0598, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x7fca, 0xccff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8fd0, 0xd300, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0f, 0x9ca1, 0xf4fb, 0xfbff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7fca, 0xcd00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x21a3, 0xa8f9, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc1e5, 0xe70b, 0x9ba0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x3eb0, 0xb4ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb5e1, 0xe200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c22, 0xa4a9, 0xfafd, 0xfdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffd, 0xfefe, 0x34ac, 0xaf00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x79c7, 0xcaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffce, 0xebec, 0x159f, 0xa400, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0a9a, 0x9fee, 0xf8f9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe1f2, 0xf302, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c39, 0xadb1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffe0, 0xf2f3, 0x0699, 0x9e00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c04, 0x989d, 0xd4ed, 0xeeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd2ed, 0xed18, 0xa0a5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9cb5, 0xe0e2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf8fc, 0xfc16, 0x9fa4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c5e, 0xbcbf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbb, 0xe3e5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c41, 0xb0b4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffd1, 0xeced, 0x1aa1, 0xa500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c6f, 0xc4c6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeff, 0xff3d, 0xafb3, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c83, 0xccce, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffba, 0xe2e4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9caa, 0xdcde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcae9, 0xea18, 0xa0a4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0x0096, 0x9b00, 0x969b, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c2a, 0xa7ac, 0xfcfe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff6c, 0xc2c6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9caa, 0xdcdd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffbe, 0xe4e5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x1ea2, 0xa6f5, 0xfbfb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffc4, 0xe7e8, 0x139e, 0xa200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0b9b, 0xa058, 0xbabd, 0xa2d8, 0xdacd, 0xeaeb, 0xd6ee, 0xefc7, 0xe8e9, 0xa0d8, 0xd96a, 0xc1c4, 0x2aa7, 0xac07, 0x999d, 0xd7ee, 0xefff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff9e, 0xd7d9, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9cd9, 0xf0f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffc2, 0xe6e7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x80cb, 0xcdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb3e0, 0xe10d, 0x9ba0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x7ac9, 0xcbff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcfe, 0xfed7, 0xeeef, 0xd7ef, 0xf0ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffd0, 0xeced, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x169f, 0xa4fb, 0xfefe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffc9, 0xe8ea, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0d, 0x9ca0, 0xe7f6, 0xf6ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd8ef, 0xf0a6, 0xdadc, 0x73c5, 0xc840, 0xb0b4, 0x129e, 0xa200, 0x969b, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x75c6, 0xc8ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff6, 0xfbfc, 0x119d, 0xa200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x46b3, 0xb7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffd1, 0xeced, 0x0096, 0x9b00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c68, 0xc0c4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7fc, 0xfcd3, 0xedee, 0xa0d8, 0xd96f, 0xc3c6, 0x3eaf, 0xb315, 0x9ea3, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x72c4, 0xc7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x43b1, 0xb500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x7dc9, 0xccff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffd8, 0xeff0, 0x0096, 0x9b00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0698, 0x9dd8, 0xeff0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfeff, 0xfff6, 0xfbfc, 0xd7ef, 0xefa4, 0xd9db, 0x1da1, 0xa600, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x68c0, 0xc3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7cc9, 0xcb00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x979c, 0xbee4, 0xe5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffe0, 0xf3f3, 0x0398, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x63be, 0xc2ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x94d2, 0xd500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x5abb, 0xbeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb5e0, 0xe200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c10, 0x9ca1, 0xf1fa, 0xfaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffea, 0xf7f7, 0x0a9a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0b, 0x9ba0, 0xdaf0, 0xf1ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf5fb, 0xfb20, 0xa3a7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x4db6, 0xbaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe7f5, 0xf609, 0x9a9f, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c4a, 0xb4b8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff4, 0xfbfb, 0x119d, 0xa100, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c72, 0xc5c8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff95, 0xd3d5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x42b1, 0xb5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdfe, 0xfe2c, 0xa8ac, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9ca3, 0xd9db, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffa, 0xfdfd, 0x20a4, 0xa800, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x1fa2, 0xa7ee, 0xf8f9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff2, 0xfafa, 0x20a3, 0xa700, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x3eaf, 0xb3ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0xeaf7, 0xf7c7, 0xe8e9, 0xa8db, 0xdd91, 0xd2d4, 0x83cb, 0xce7f, 0xc9cc, 0x7ac7, 0xca7f, 0xc9cc, 0x83cb, 0xcd92, 0xd2d5, 0xa9db, 0xddbf, 0xe5e6, 0xddf1, 0xf2f1, 0xfafa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff63, 0xbfc2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0d9c, 0xa0e9, 0xf6f7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x3caf, 0xb200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x4cb5, 0xb986, 0xcdcf, 0x84cb, 0xcd81, 0xcacd, 0x79c7, 0xca71, 0xc4c7, 0x6bc2, 0xc565, 0xc0c3, 0x5fbd, 0xc15a, 0xbbbe, 0x56ba, 0xbd54, 0xb9bd, 0x52b8, 0xbc51, 0xb7bb, 0x50b7, 0xba4f, 0xb6ba, 0x4eb6, 0xb94e, 0xb5b9, 0x4db5, 0xb94d, 0xb5b9, 0x4db5, 0xb94e, 0xb5b9, 0x4fb6, 0xba51, 0xb7bb, 0x52b8, 0xbc57, 0xbabd, 0x5cbc, 0xbf65, 0xc0c3, 0x6fc3, 0xc679, 0xc8ca, 0x83cb, 0xce8d, 0xd0d3, 0x4fb6, 0xba00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x3cae, 0xb2ff, 0xffff, 0xfeff, 0xffd3, 0xedee, 0x78c7, 0xca2c, 0xa8ac, 0x089a, 0x9e01, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x979c, 0x0497, 0x9c0e, 0x9ca1, 0x2ea9, 0xad61, 0xbec1, 0x9fd7, 0xd9d8, 0xeff0, 0xfafd, 0xfdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffa5, 0xdadb, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x4eb6, 0xbaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x5fbd, 0xc000, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x31aa, 0xaee1, 0xf3f3, 0x56b9, 0xbc05, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c04, 0x989d, 0x25a5, 0xaa67, 0xc0c3, 0xb8e2, 0xe3f9, 0xfdfd, 0xffff, 0xffe4, 0xf4f4, 0x0699, 0x9e00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0xb4e0, 0xe2ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x94d3, 0xd500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x139f, 0xa31d, 0xa2a7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c1d, 0xa2a6, 0x74c6, 0xc8d6, 0xeeef, 0x30a9, 0xad00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c29, 0xa7ab, 0xfbfe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe9f6, 0xf75b, 0xbbbe, 0x0b9b, 0xa000, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c06, 0x989e, 0x0b9b, 0xa000, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0e, 0x9ca1, 0x5dbc, 0xbfa6, 0xd9db, 0xe1f3, 0xf3fc, 0xfefe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe6f5, 0xf580, 0xcbcd, 0x1ea2, 0xa701, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0799, 0x9e2c, 0xa8ac, 0x6ac1, 0xc4ac, 0xddde, 0xebf7, 0xf7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf5fb, 0xfbae, 0xdddf, 0x48b4, 0xb705, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0899, 0x9e37, 0xacb0, 0x76c6, 0xc9b3, 0xdfe1, 0xe8f6, 0xf6fe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfafd, 0xfd1f, 0xa3a7, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0899, 0x9e2f, 0xa9ae, 0x71c4, 0xc7ae, 0xdddf, 0xe3f3, 0xf4fc, 0xfefe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb5e0, 0xe200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0799, 0x9e28, 0xa7ab, 0x5ebc, 0xbf96, 0xd3d6, 0xd2ed, 0xeefa, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x57b9, 0xbd00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c1d, 0xa3a7, 0x6fc4, 0xc653, 0xb8bc, 0x3cae, 0xb21e, 0xa3a7, 0x0c9b, 0xa000, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9c16, 0x9fa4, 0x49b4, 0xb881, 0xcbcd, 0xb7e1, 0xe2e6, 0xf5f5, 0xfeff, 0xffec, 0xf8f8, 0x109d, 0xa200, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0398, 0x9dbc, 0xe3e5, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffc, 0xfefe, 0xf0f9, 0xfa3b, 0xaeb2, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c06, 0x989d, 0x27a6, 0xaa44, 0xb1b6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x59bb, 0xbeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff43, 0xb1b5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0d, 0x9ba0, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c04, 0x989d, 0xcbea, 0xebff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff6f, 0xc3c6, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c03, 0x989d, 0x26a6, 0xaa5a, 0xbbbe, 0xb1df, 0xe0c5, 0xe7e8, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c32, 0xaaae, 0xfdfe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffb0, 0xdfe0, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c20, 0xa3a7, 0xfdfe, 0xfeff, 0xffff, 0xffff, 0xfffd, 0xfefe, 0x2da8, 0xad00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c7a, 0xc8ca, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff7, 0xfcfc, 0x2aa7, 0xac00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c49, 0xb4b8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x77c7, 0xca00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9cad, 0xdddf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd0eb, 0xed17, 0x9fa4, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c97, 0xd4d6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xa5da, 0xdc00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0096, 0x9bc9, 0xe9ea, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffd8, 0xeff0, 0x33ab, 0xaf00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x169f, 0xa4ea, 0xf7f7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbbe3, 0xe400, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0096, 0x9bc2, 0xe6e7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf6fb, 0xfc8b, 0xcfd1, 0x149f, 0xa300, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c04, 0x989d, 0xa8db, 0xddff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbce3, 0xe500, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c9a, 0xd5d7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xedf8, 0xf88c, 0xd0d2, 0x2ba7, 0xac01, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x099a, 0x9f9f, 0xd8d9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb1df, 0xe100, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c56, 0xb9bc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbfe, 0xfec4, 0xe7e8, 0x6dc2, 0xc624, 0xa5aa, 0x0398, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c2d, 0xa8ad, 0xc9e9, 0xeaff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xa0d8, 0xda00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0e, 0x9ca1, 0xe5f4, 0xf5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffa, 0xfdfd, 0xd2ec, 0xed8f, 0xd1d3, 0x49b4, 0xb812, 0x9ea2, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c15, 0x9fa3, 0x91d2, 0xd3f6, 0xfcfc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8bce, 0xd100, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x71c4, 0xc7ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff6, 0xfbfc, 0xccea, 0xeb99, 0xd5d7, 0x66c0, 0xc337, 0xacb0, 0x109d, 0xa100, 0x969b, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c21, 0xa4a8, 0x8ace, 0xd1ed, 0xf8f8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x69c1, 0xc400, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0599, 0x9dbf, 0xe4e6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf5fb, 0xfbd5, 0xeeef, 0xa7da, 0xdc7c, 0xc9cb, 0x57ba, 0xbd33, 0xabaf, 0x159f, 0xa306, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0b9b, 0x9f49, 0xb4b8, 0xa9db, 0xddf8, 0xfcfc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x3fb0, 0xb300, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c1b, 0xa1a6, 0xdef1, 0xf2ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0xf5fb, 0xfbe1, 0xf3f4, 0xc7e8, 0xe9a4, 0xd9db, 0x85cc, 0xcf65, 0xbfc2, 0x46b3, 0xb627, 0xa6aa, 0x159f, 0xa306, 0x999e, 0x0397, 0x9c01, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0397, 0x9c1c, 0xa1a6, 0x59bb, 0xbea5, 0xd9dc, 0xe6f5, 0xf5ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff5, 0xfbfb, 0x109d, 0xa100, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x27a6, 0xaadf, 0xf2f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf8fc, 0xfced, 0xf8f8, 0xdef1, 0xf2c7, 0xe8e9, 0xb7e0, 0xe2a5, 0xd9db, 0x90d1, 0xd482, 0xcbcd, 0x76c6, 0xc967, 0xc0c3, 0x58bb, 0xbe51, 0xb7ba, 0x4cb4, 0xb844, 0xb2b5, 0x3daf, 0xb33a, 0xaeb2, 0x37ad, 0xb136, 0xacb0, 0x3daf, 0xb247, 0xb2b6, 0x55b9, 0xbd6e, 0xc3c6, 0x8ccf, 0xd2b2, 0xdfe1, 0xddf1, 0xf2fa, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffc4, 0xe7e8, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c20, 0xa3a7, 0xd1ec, 0xedff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff7b, 0xc8cb, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x119d, 0xa2a6, 0xdadc, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfcfe, 0xfe2b, 0xa8ac, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c02, 0x989d, 0x62be, 0xc1eb, 0xf7f7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbde4, 0xe501, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c1b, 0xa1a6, 0xa5da, 0xdbfb, 0xfdfd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffd, 0xfefe, 0x45b2, 0xb600, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9c3b, 0xaeb2, 0xc1e5, 0xe7fe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffba, 0xe3e4, 0x0398, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0398, 0x9d47, 0xb3b7, 0xbee4, 0xe6fe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf2fa, 0xfa2a, 0xa7ab, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9c40, 0xb0b4, 0xafde, 0xe0f8, 0xfcfc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffe, 0xffff, 0x69c1, 0xc400, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9c25, 0xa5a9, 0x88ce, 0xd0e7, 0xf5f6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xff92, 0xd2d4, 0x0298, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c0b, 0x9ba0, 0x56b9, 0xbdb0, 0xdee0, 0xf5fb, 0xfbff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9dd6, 0xd806, 0x999e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x169f, 0xa46c, 0xc2c5, 0xbce3, 0xe5f5, 0xfbfb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdfe, 0xfe8b, 0xcfd2, 0x0397, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0197, 0x9c19, 0xa0a5, 0x5fbd, 0xc0b2, 0xdfe1, 0xeff9, 0xf9ff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffe9, 0xf6f7, 0x53b8, 0xbb01, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0f9c, 0xa14a, 0xb4b8, 0x8fd0, 0xd2d0, 0xeced, 0xfbfd, 0xfdff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffb, 0xfefe, 0x9ed7, 0xd91a, 0xa1a5, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c01, 0x979c, 0x1da2, 0xa65e, 0xbdc0, 0x9ad5, 0xd7d2, 0xeded, 0xf7fc, 0xfcff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfff6, 0xfbfc, 0xabdc, 0xde33, 0xabaf, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c03, 0x989d, 0x19a0, 0xa54a, 0xb4b8, 0x85cc, 0xcfc2, 0xe6e7, 0xedf8, 0xf8fd, 0xfefe, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdfe, 0xfed7, 0xeff0, 0x7cc8, 0xcb20, 0xa3a7, 0x0197, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x9a9d, 0x009a, 0x9f00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x969b, 0x0b9a, 0x9f2e, 0xa9ad, 0x5ebd, 0xbf8c, 0xcfd1, 0xb9e2, 0xe3e4, 0xf4f5, 0xfbfe, 0xfeff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfdff, 0xffe5, 0xf4f5, 0xafde, 0xdf70, 0xc3c7, 0x2ea9, 0xad04, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x999d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c02, 0x979c, 0x179f, 0xa43e, 0xafb3, 0x62be, 0xc185, 0xcccf, 0xa3d9, 0xdbbe, 0xe4e5, 0xd1ec, 0xede1, 0xf3f4, 0xebf7, 0xf7ee, 0xf8f8, 0xeef8, 0xf8ed, 0xf8f8, 0xeaf6, 0xf7e0, 0xf3f3, 0xd2ed, 0xeec4, 0xe6e7, 0xafde, 0xdf92, 0xd2d4, 0x71c4, 0xc74b, 0xb4b8, 0x1fa2, 0xa704, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x989b, 0x0097, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0297, 0x9c06, 0x989d, 0x0899, 0x9e09, 0x999e, 0x099a, 0x9f09, 0x999e, 0x0899, 0x9d06, 0x989d, 0x0397, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979d, 0x0098, 0x9d00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979d, 0x009a, 0x9d00, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979d, 0x007f, 0x7f00, 0x969e, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9f00, 0x0000, 0x0000, 0x0000, 0x9a9f, 0x0099, 0x9b00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x989c, 0x0094, 0x9f00, 0x0000, 0x0000, 0x0000, 0x0000, 0x009b, 0x9e00, 0x969c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0096, 0x9e00, 0x979b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x989c, 0x0098, 0x9e00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x999e, 0x0097, 0x9d00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0099, 0x9900, 0x9a9e, 0x0097, 0x9e00, 0x989d, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0097, 0x9c00, 0x979c, 0x0098, 0x9d00, 0x989c, 0x0099, 0x9e00, 0x9494, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000'), 'TEXT');
+ .appendField(new Blockly.FieldTextInput(''), 'TEXT');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.OLED_DEF_BMP_DATA_TOOLTIP);
@@ -2258,7 +2352,6 @@ export const tft_showBitmap = {
}
};
-
export const tft_drawPixel = {
init: function () {
this.setColour(DISPLAY_HUE);
@@ -2492,7 +2585,6 @@ export const tft_Circle = {
}
};
-
//显示-OLED-设置字体
export const tft_set_EN_Font = {
init: function () {
@@ -2514,6 +2606,7 @@ export const tft_set_EN_Font = {
this.setTooltip(Blockly.Msg.oled_setFont_tooltip);
}
};
+
//显示-OLED-设置字体
export const tft_set_CN_Font = {
init: function () {
@@ -2533,7 +2626,6 @@ export const tft_set_CN_Font = {
}
};
-
//显示-TFT-设置图标
export const tft_icons = {
init: function () {
@@ -2677,9 +2769,12 @@ export const display_TM1637_displayTime_32 = {
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MINUTE);
// .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "displayOn"], [Blockly.Msg.MIXLY_OFF, "displayOff"], [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, "clear"]]), "STAT");
- this.appendDummyInput("").appendField(Blockly.Msg.MIXLY_DISPLAY_TM1637_Time_Point).appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "(0x80 >> 1)"], [Blockly.Msg.MIXLY_OFF, "(0x80 >> 2)"]]), "STAT");
-
-
+ this.appendDummyInput("")
+ .appendField(Blockly.Msg.MIXLY_DISPLAY_TM1637_Time_Point)
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ON, "(0x80 >> 1)"],
+ [Blockly.Msg.MIXLY_OFF, "(0x80 >> 2)"]
+ ]), "STAT");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
diff --git a/boards/default_src/arduino_avr/blocks/ethernet.js b/boards/default_src/arduino_avr/blocks/ethernet.js
index 5900014a..f55834a1 100644
--- a/boards/default_src/arduino_avr/blocks/ethernet.js
+++ b/boards/default_src/arduino_avr/blocks/ethernet.js
@@ -7,7 +7,10 @@ export const ethernet_init_begin = {
this.setColour(ETHERNET_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ETHERNET_BEGIN)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ETHERNET, 'Ethernet'], [Blockly.Msg.MIXLY_ETHERNET2, 'Ethernet2']]), "Ethernet");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ETHERNET, 'Ethernet'],
+ [Blockly.Msg.MIXLY_ETHERNET2, 'Ethernet2']
+ ]), "Ethernet");
this.appendValueInput('MAC')
.setCheck(Array)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -35,7 +38,7 @@ export const ethernet_mac_address = {
this.setOutput(true, Array);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_ETHERNET_MACADDRESS);
}
-}
+};
export const ethernet_init_local_ip = {
init: function () {
@@ -167,8 +170,7 @@ export const ethernet_client_get_request = {
}
return new Blockly.FieldImage(file, 12, 12, '"');
}
-}
-
+};
export const NTP_server = {
init: function () {
@@ -190,16 +192,7 @@ export const NTP_server = {
this.setHelpUrl();
}
};
-//传感器-实时时钟块_时间变量
-var NTP_TIME_TYPE = [
- [Blockly.Msg.MIXLY_YEAR, "NTP.getDateYear()"],
- [Blockly.Msg.MIXLY_MONTH, "NTP.getDateMonth()"],
- [Blockly.Msg.MIXLY_DAY, "NTP.getDateDay()"],
- [Blockly.Msg.MIXLY_HOUR, "NTP.getTimeHour24()"],
- [Blockly.Msg.MIXLY_MINUTE, "NTP.getTimeMinute()"],
- [Blockly.Msg.MIXLY_SECOND, "NTP.getTimeSecond()"],
- [Blockly.Msg.MIXLY_WEEK, "NTP.getDateWeekday()"]
-];
+
//传感器-实时时钟块_获取时间
export const NTP_server_get_time = {
init: function () {
@@ -209,10 +202,19 @@ export const NTP_server_get_time = {
.appendField(Blockly.Msg.NTP_server_get_time);
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(NTP_TIME_TYPE), "TIME_TYPE");
+ .appendField(new Blockly.FieldDropdown(this.NTP_TIME_TYPE), "TIME_TYPE");
this.setInputsInline(true);
this.setOutput(true, Number);
- }
+ },
+ NTP_TIME_TYPE: [
+ [Blockly.Msg.MIXLY_YEAR, "NTP.getDateYear()"],
+ [Blockly.Msg.MIXLY_MONTH, "NTP.getDateMonth()"],
+ [Blockly.Msg.MIXLY_DAY, "NTP.getDateDay()"],
+ [Blockly.Msg.MIXLY_HOUR, "NTP.getTimeHour24()"],
+ [Blockly.Msg.MIXLY_MINUTE, "NTP.getTimeMinute()"],
+ [Blockly.Msg.MIXLY_SECOND, "NTP.getTimeSecond()"],
+ [Blockly.Msg.MIXLY_WEEK, "NTP.getDateWeekday()"]
+ ]
};
export const MQTT_server = {
@@ -315,7 +317,8 @@ export const MQTT_connect = {
this.setTooltip();
}
};
-var Topic_validator = function (newValue) {
+
+const Topic_validator = function (newValue) {
return newValue.replace(/\//g, '');
};
@@ -352,6 +355,7 @@ export const MQTT_subscribe_value = {
this.setOutput(true, String);
}
};
+
export const MQTT_add_subscribe_topic = {
/**
* Mutator bolck for else-if condition.
@@ -487,7 +491,6 @@ export const MQTT_subscribe = {
clauseBlock = clauseBlock.nextConnection &&
clauseBlock.nextConnection.targetBlock();
}
-
this.updateShape_();
// Reconnect any child blocks.
this.reconnectChildBlocks_(statementConnections);
@@ -612,7 +615,10 @@ export const WIFI_smartConfig = {
this.setColour(ETHERNET_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.blynk_smartconfig)
- .appendField(new Blockly.FieldDropdown([["SmartConfig", 'SmartConfig'], ["AP", 'AP']]), "MODE");
+ .appendField(new Blockly.FieldDropdown([
+ ["SmartConfig", 'SmartConfig'],
+ ["AP", 'AP']
+ ]), "MODE");
this.setInputsInline(true);
this.setPreviousStatement(true, null);//可上下连接
this.setNextStatement(true, null);
@@ -695,7 +701,10 @@ export const WIFI_incomingPacket = {
init: function () {
this.appendDummyInput()
.appendField(new Blockly.FieldImage(require('../media/blynk/wifi_udp.png'), 25, 25, "*"))
- .appendField(Blockly.Msg.CONTROLS_IF_MSG_IF + " WIFI UDP " + Blockly.Msg.MIXLY_STM32_SPI_DATA_RECEIVED + "?")
+ .appendField(
+ Blockly.Msg.CONTROLS_IF_MSG_IF + " WIFI UDP "
+ + Blockly.Msg.MIXLY_STM32_SPI_DATA_RECEIVED + "?"
+ )
this.appendValueInput("input_data")
.setCheck(null)
.appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS);
diff --git a/boards/default_src/arduino_avr/blocks/factory.js b/boards/default_src/arduino_avr/blocks/factory.js
index 4b4cfe67..39de28c9 100644
--- a/boards/default_src/arduino_avr/blocks/factory.js
+++ b/boards/default_src/arduino_avr/blocks/factory.js
@@ -175,7 +175,8 @@ export const factory_declare = {
this.setPreviousStatement(true);
this.setNextStatement(true);
}
-}
+};
+
export const factory_declare2 = {
init: function () {
this.setColour(FACTORY_HUE);
@@ -185,6 +186,7 @@ export const factory_declare2 = {
this.setNextStatement(true);
}
};
+
export const factory_define = {
init: function () {
this.setColour(FACTORY_HUE);
@@ -195,7 +197,8 @@ export const factory_define = {
this.setPreviousStatement(true);
this.setNextStatement(true);
}
-}
+};
+
export const factory_static_method_noreturn = {
init: function () {
this.setColour(FACTORY_HUE);
@@ -216,7 +219,7 @@ export const factory_static_method_noreturn = {
compose: factory_function_noreturn.compose,
saveConnections: factory_function_noreturn.saveConnections,
updateShape_: factory_function_noreturn.updateShape_
-}
+};
export const factory_static_method_return = {
init: function () {
@@ -237,7 +240,7 @@ export const factory_static_method_return = {
compose: factory_function_noreturn.compose,
saveConnections: factory_function_noreturn.saveConnections,
updateShape_: factory_function_noreturn.updateShape_
-}
+};
export const factory_callMethod_noreturn = {
init: function () {
@@ -318,4 +321,4 @@ export const factory_block_return_with_textarea = {
.appendField(new Blockly.FieldMultilineInput('Hello\nMixly'), 'VALUE');
this.setOutput(true);
}
-};
+};
\ No newline at end of file
diff --git a/boards/default_src/arduino_avr/blocks/inout.js b/boards/default_src/arduino_avr/blocks/inout.js
index 8afedf80..f9841c1f 100644
--- a/boards/default_src/arduino_avr/blocks/inout.js
+++ b/boards/default_src/arduino_avr/blocks/inout.js
@@ -7,7 +7,10 @@ export const inout_highlow = {
init: function () {
this.setColour(BASE_HUE);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_HIGH, "HIGH"], [Blockly.Msg.MIXLY_LOW, "LOW"]]), 'BOOL')
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_HIGH, "HIGH"],
+ [Blockly.Msg.MIXLY_LOW, "LOW"]
+ ]), 'BOOL')
this.setOutput(true, Boolean);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);
}
@@ -21,7 +24,11 @@ export const inout_pinMode = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_STAT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PINMODEIN, "INPUT"], [Blockly.Msg.MIXLY_PINMODEOUT, "OUTPUT"], [Blockly.Msg.MIXLY_PINMODEPULLUP, "INPUT_PULLUP"]]), "MODE")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_PINMODEIN, "INPUT"],
+ [Blockly.Msg.MIXLY_PINMODEOUT, "OUTPUT"],
+ [Blockly.Msg.MIXLY_PINMODEPULLUP, "INPUT_PULLUP"]
+ ]), "MODE")
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
@@ -29,7 +36,6 @@ export const inout_pinMode = {
}
};
-
export const inout_digital_write2 = {
init: function () {
this.setColour(BASE_HUE);
@@ -108,7 +114,10 @@ export const inout_buildin_led = {
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_BUILDIN_LED)
.appendField(Blockly.Msg.MIXLY_STAT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "HIGH"], [Blockly.Msg.MIXLY_OFF, "LOW"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ON, "HIGH"],
+ [Blockly.Msg.MIXLY_OFF, "LOW"]
+ ]), "STAT");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip('light or off the build-in LED');
@@ -122,7 +131,13 @@ export const OneButton_interrupt = {
.appendField(Blockly.Msg.ONEBUTTON + " " + Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_CLICK, "attachClick"], [Blockly.Msg.MIXLY_DOUBLE_CLICK, "attachDoubleClick"], [Blockly.Msg.MIXLY_LONG_PRESS_START, "attachLongPressStart"], [Blockly.Msg.MIXLY_DURING_LONG_PRESS, "attachDuringLongPress"], [Blockly.Msg.MIXLY_LONG_PRESS_END, "attachLongPressStop"]]), "mode");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_CLICK, "attachClick"],
+ [Blockly.Msg.MIXLY_DOUBLE_CLICK, "attachDoubleClick"],
+ [Blockly.Msg.MIXLY_LONG_PRESS_START, "attachLongPressStart"],
+ [Blockly.Msg.MIXLY_DURING_LONG_PRESS, "attachDuringLongPress"],
+ [Blockly.Msg.MIXLY_LONG_PRESS_END, "attachLongPressStop"]
+ ]), "mode");
this.appendValueInput("STAT")
.appendField(Blockly.Msg.MIXLY_ELECLEVEL);
this.appendStatementInput('DO')
@@ -141,7 +156,11 @@ export const controls_attachInterrupt = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MODE)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, "RISING"], [Blockly.Msg.MIXLY_FALLING, "FALLING"], [Blockly.Msg.MIXLY_CHANGE, "CHANGE"]]), "mode");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_RISING, "RISING"],
+ [Blockly.Msg.MIXLY_FALLING, "FALLING"],
+ [Blockly.Msg.MIXLY_CHANGE, "CHANGE"]
+ ]), "mode");
this.appendStatementInput('DO')
.appendField(Blockly.Msg.MIXLY_DO);
this.setPreviousStatement(true);
@@ -173,7 +192,11 @@ export const controls_attachPinInterrupt = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MODE)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, "RISING"], [Blockly.Msg.MIXLY_FALLING, "FALLING"], [Blockly.Msg.MIXLY_CHANGE, "CHANGE"]]), "mode");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_RISING, "RISING"],
+ [Blockly.Msg.MIXLY_FALLING, "FALLING"],
+ [Blockly.Msg.MIXLY_CHANGE, "CHANGE"]
+ ]), "mode");
this.appendStatementInput('DO')
.appendField(Blockly.Msg.MIXLY_DO);
this.setPreviousStatement(true);
@@ -202,7 +225,10 @@ export const inout_pulseIn = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_HIGH, "HIGH"], [Blockly.Msg.MIXLY_LOW, "LOW"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_HIGH, "HIGH"],
+ [Blockly.Msg.MIXLY_LOW, "LOW"]
+ ]), "STAT");
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_pulseIn);
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id33");
@@ -217,7 +243,10 @@ export const inout_pulseIn2 = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_HIGH, "HIGH"], [Blockly.Msg.MIXLY_LOW, "LOW"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_HIGH, "HIGH"],
+ [Blockly.Msg.MIXLY_LOW, "LOW"]
+ ]), "STAT");
this.appendValueInput("TIMEOUT", Number)
.appendField(Blockly.Msg.MIXLY_PULSEIN_TIMEOUT)
.setCheck(Number);
@@ -241,7 +270,10 @@ export const inout_shiftout = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_BITORDER)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MSBFIRST, "MSBFIRST"], [Blockly.Msg.MIXLY_LSBFIRST, "LSBFIRST"]]), "ORDER");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_MSBFIRST, "MSBFIRST"],
+ [Blockly.Msg.MIXLY_LSBFIRST, "LSBFIRST"]
+ ]), "ORDER");
this.appendValueInput("DATA", Number)
.appendField(Blockly.Msg.MIXLY_DATA)
.setCheck(Number);
@@ -253,7 +285,6 @@ export const inout_shiftout = {
}
};
-
export const ESP32touchButton = {
init: function () {
this.setColour(BASE_HUE);
@@ -262,7 +293,13 @@ export const ESP32touchButton = {
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MODE)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_CLICK, "attachClick"], [Blockly.Msg.MIXLY_DOUBLE_CLICK, "attachDoubleClick"], [Blockly.Msg.MIXLY_LONG_PRESS_START, "attachLongPressStart"], [Blockly.Msg.MIXLY_DURING_LONG_PRESS, "attachDuringLongPress"], [Blockly.Msg.MIXLY_LONG_PRESS_END, "attachLongPressStop"]]), "mode");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_CLICK, "attachClick"],
+ [Blockly.Msg.MIXLY_DOUBLE_CLICK, "attachDoubleClick"],
+ [Blockly.Msg.MIXLY_LONG_PRESS_START, "attachLongPressStart"],
+ [Blockly.Msg.MIXLY_DURING_LONG_PRESS, "attachDuringLongPress"],
+ [Blockly.Msg.MIXLY_LONG_PRESS_END, "attachLongPressStop"]
+ ]), "mode");
this.appendStatementInput('DO')
.appendField(Blockly.Msg.MIXLY_DO);
this.setTooltip();
@@ -301,45 +338,62 @@ export const inout_cancel_soft_analog_write = {
}
};
-//ADS1015模拟数字转换模块-获取数据
-var ADS1015_setGain_type = [
- ["±6.144V 3mv/bit", "GAIN_TWOTHIRDS"],
- ["±4.096V 2mv/bit", "GAIN_ONE"],
- ["±2.048V 1mv/bit", "GAIN_TWO"],
- ["±1.024V 0.5mv/bit", "GAIN_FOUR"],
- ["±0.512V 0.25mv/bit", "GAIN_EIGHT"],
- ["±0.256V 0.125mv/bit", "GAIN_SIXTEEN"],
-];
-
//ADS1015模拟数字转换模块-增益设置
export const ADS1015_setGain = {
init: function () {
this.setColour(BASE_HUE);
- this.appendDummyInput("").appendField(Blockly.Msg.MIXLY_SETTING).appendField(Blockly.Msg.ADS1015_setGain);
- this.appendDummyInput("").setAlign(Blockly.inputs.Align.RIGHT).appendField(new Blockly.FieldDropdown(ADS1015_setGain_type), "ADS1015_setGain");
+ this.appendDummyInput("")
+ .appendField(Blockly.Msg.MIXLY_SETTING)
+ .appendField(Blockly.Msg.ADS1015_setGain);
+ this.appendDummyInput("")
+ .setAlign(Blockly.inputs.Align.RIGHT)
+ .appendField(new Blockly.FieldDropdown(this.GAIN_TYPE), "ADS1015_setGain");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip();
- }
+ },
+ GAIN_TYPE: [
+ ["±6.144V 3mv/bit", "GAIN_TWOTHIRDS"],
+ ["±4.096V 2mv/bit", "GAIN_ONE"],
+ ["±2.048V 1mv/bit", "GAIN_TWO"],
+ ["±1.024V 0.5mv/bit", "GAIN_FOUR"],
+ ["±0.512V 0.25mv/bit", "GAIN_EIGHT"],
+ ["±0.256V 0.125mv/bit", "GAIN_SIXTEEN"],
+ ]
};
//ADS1015模拟数字转换模块 数值获取
export const ADS1015_Get_Value = {
init: function () {
this.setColour(BASE_HUE);
- this.appendDummyInput("").appendField("ADS1015" + Blockly.Msg.ADS1015_Get_Value);
- this.appendDummyInput("").appendField(new Blockly.FieldDropdown([["AIN0", "ads.readADC_SingleEnded(0)"], ["AIN1", "ads.readADC_SingleEnded(1)"], ["AIN2", "ads.readADC_SingleEnded(2)"], ["AIN3", "ads.readADC_SingleEnded(3)"]]), "ADS1015_AIN");
+ this.appendDummyInput("")
+ .appendField("ADS1015" + Blockly.Msg.ADS1015_Get_Value);
+ this.appendDummyInput("")
+ .appendField(new Blockly.FieldDropdown([
+ ["AIN0", "ads.readADC_SingleEnded(0)"],
+ ["AIN1", "ads.readADC_SingleEnded(1)"],
+ ["AIN2", "ads.readADC_SingleEnded(2)"],
+ ["AIN3", "ads.readADC_SingleEnded(3)"]
+ ]), "ADS1015_AIN");
this.setInputsInline(true);
this.setOutput(true);
}
};
+
//PCF8591T模拟数字转换模块 数值获取
export const PCF8591T = {
init: function () {
this.setColour(BASE_HUE);
- this.appendDummyInput("").appendField("PCF8591T" + Blockly.Msg.ADS1015_Get_Value);
- this.appendDummyInput("").appendField(new Blockly.FieldDropdown([["AIN0", "pcf8591.analogRead(AIN0)"], ["AIN1", "pcf8591.analogRead(AIN1)"], ["AIN2", "pcf8591.analogRead(AIN2)"], ["AIN3", "pcf8591.analogRead(AIN3)"]]), "PCF8591T_AIN");
+ this.appendDummyInput("")
+ .appendField("PCF8591T" + Blockly.Msg.ADS1015_Get_Value);
+ this.appendDummyInput("")
+ .appendField(new Blockly.FieldDropdown([
+ ["AIN0", "pcf8591.analogRead(AIN0)"],
+ ["AIN1", "pcf8591.analogRead(AIN1)"],
+ ["AIN2", "pcf8591.analogRead(AIN2)"],
+ ["AIN3", "pcf8591.analogRead(AIN3)"]
+ ]), "PCF8591T_AIN");
this.setInputsInline(true);
this.setOutput(true);
}
diff --git a/boards/default_src/arduino_avr/blocks/lists.js b/boards/default_src/arduino_avr/blocks/lists.js
index 15320741..39f48709 100644
--- a/boards/default_src/arduino_avr/blocks/lists.js
+++ b/boards/default_src/arduino_avr/blocks/lists.js
@@ -175,7 +175,7 @@ export const lists_create_with_text = {
}
return new Blockly.FieldImage(file, 12, 12, '"');
}
-}
+};
export const lists_create_with2 = {
/**
@@ -577,6 +577,7 @@ export const lists_array2_setup = {
this.setHelpUrl("");
}
};
+
export const lists_array2_setup_get_data = {
/**
* Block for creating a list with any number of elements of any type.
@@ -720,10 +721,14 @@ export const loop_array = {
init: function () {
this.appendValueInput("name")
.setCheck(null)
- .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE).appendField(new Blockly.FieldDropdown(DATATYPES), "TYPE")
+ .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE)
+ .appendField(new Blockly.FieldDropdown(DATATYPES), "TYPE")
.appendField(Blockly.Msg.MIXLY_LIST_NAME);
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.LEFT_CYCLE, "0"], [Blockly.Msg.RIGHT_CYCLE, "1"]]), "mode");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.LEFT_CYCLE, "0"],
+ [Blockly.Msg.RIGHT_CYCLE, "1"]
+ ]), "mode");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(LISTS_HUE);
@@ -739,7 +744,10 @@ export const lists_array2_get_length = {
.appendField(Blockly.Msg.MIXLY_ARRAY2)
.appendField(new Blockly.FieldTextInput("mylist"), "list_name")
.appendField(" " + Blockly.Msg.MIXLY_GET)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.array2_rows, "row"], [Blockly.Msg.array2_cols, "col"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.array2_rows, "row"],
+ [Blockly.Msg.array2_cols, "col"]
+ ]), "type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(LISTS_HUE);
diff --git a/boards/default_src/arduino_avr/blocks/logic.js b/boards/default_src/arduino_avr/blocks/logic.js
index 9239b686..0c7f4c70 100644
--- a/boards/default_src/arduino_avr/blocks/logic.js
+++ b/boards/default_src/arduino_avr/blocks/logic.js
@@ -133,7 +133,6 @@ export const logic_null = {
}
};
-
export const logic_true_or_false = {
init: function () {
this.setColour(LOGIC_HUE);
@@ -146,4 +145,4 @@ export const logic_true_or_false = {
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE);
}
-};
+};
\ No newline at end of file
diff --git a/boards/default_src/arduino_avr/blocks/math.js b/boards/default_src/arduino_avr/blocks/math.js
index 4cc346d1..9473570c 100644
--- a/boards/default_src/arduino_avr/blocks/math.js
+++ b/boards/default_src/arduino_avr/blocks/math.js
@@ -29,14 +29,6 @@ export const math_arithmetic = {
* @this Blockly.Block
*/
init: function () {
- var OPERATORS = [
- [Blockly.Msg.MATH_ADDITION_SYMBOL, 'ADD'],
- [Blockly.Msg.MATH_SUBTRACTION_SYMBOL, 'MINUS'],
- [Blockly.Msg.MATH_MULTIPLICATION_SYMBOL, 'MULTIPLY'],
- [Blockly.Msg.MATH_DIVISION_SYMBOL, 'DIVIDE'],
- [Blockly.Msg.MATH_QUYU_SYMBOL, 'QUYU'],
- [Blockly.Msg.MATH_POWER_SYMBOL, 'POWER']
- ];
//this.setHelpUrl(Blockly.Msg.MATH_ARITHMETIC_HELPURL);
this.setColour(MATH_HUE);
this.setOutput(true, Number);
@@ -45,7 +37,7 @@ export const math_arithmetic = {
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/04.Mathematics.html#id4");
this.appendValueInput('B')
.setCheck(null)
- .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');
+ .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
this.setInputsInline(true);
// Assign 'this' to a variable for use in the tooltip closure below.
var thisBlock = this;
@@ -61,29 +53,37 @@ export const math_arithmetic = {
};
return TOOLTIPS[mode];
});
- }
+ },
+ OPERATORS: [
+ [Blockly.Msg.MATH_ADDITION_SYMBOL, 'ADD'],
+ [Blockly.Msg.MATH_SUBTRACTION_SYMBOL, 'MINUS'],
+ [Blockly.Msg.MATH_MULTIPLICATION_SYMBOL, 'MULTIPLY'],
+ [Blockly.Msg.MATH_DIVISION_SYMBOL, 'DIVIDE'],
+ [Blockly.Msg.MATH_QUYU_SYMBOL, 'QUYU'],
+ [Blockly.Msg.MATH_POWER_SYMBOL, 'POWER']
+ ]
};
export const math_bit = {
init: function () {
- var OPERATORS = [
- ['&', '&'],
- ['|', '|'],
- ['xor', '^'],
- ['>>', '>>'],
- ['<<', '<<']
- ];
this.setColour(MATH_HUE);
this.setOutput(true, Number);
this.appendValueInput('A')
.setCheck(Number);
this.appendValueInput('B')
.setCheck(Number)
- .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');
+ .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
this.setInputsInline(true);
this.setTooltip("");
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/04.Mathematics.html#id8");
- }
+ },
+ OPERATORS: [
+ ['&', '&'],
+ ['|', '|'],
+ ['xor', '^'],
+ ['>>', '>>'],
+ ['<<', '<<']
+ ]
};
export const math_trig = {
@@ -92,27 +92,12 @@ export const math_trig = {
* @this Blockly.Block
*/
init: function () {
- var OPERATORS = [
- ['sin', 'SIN'],
- ['cos', 'COS'],
- ['tan', 'TAN'],
- ['asin', 'ASIN'],
- ['acos', 'ACOS'],
- ['atan', 'ATAN'],
- ['ln', 'LN'],
- ['log10', 'LOG10'],
- ['e^', 'EXP'],
- ['10^', 'POW10'],
- ['++', '++'],
- ['--', '--'],
- ['~', '~'],
- ];
//this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);
this.setColour(MATH_HUE);
this.setOutput(true, Number);
this.appendValueInput('NUM')
.setCheck(Number)
- .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');
+ .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
// Assign 'this' to a variable for use in the tooltip closure below.
var thisBlock = this;
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/04.Mathematics.html#id17");
@@ -128,24 +113,31 @@ export const math_trig = {
};
return TOOLTIPS[mode];
});
- }
+ },
+ OPERATORS: [
+ ['sin', 'SIN'],
+ ['cos', 'COS'],
+ ['tan', 'TAN'],
+ ['asin', 'ASIN'],
+ ['acos', 'ACOS'],
+ ['atan', 'ATAN'],
+ ['ln', 'LN'],
+ ['log10', 'LOG10'],
+ ['e^', 'EXP'],
+ ['10^', 'POW10'],
+ ['++', '++'],
+ ['--', '--'],
+ ['~', '~'],
+ ]
};
//取整等
export const math_to_int = {
init: function () {
- var OPERATORS = [
- [Blockly.Msg.LANG_MATH_TO_ROUND, 'round'],
- [Blockly.Msg.LANG_MATH_TO_CEIL, 'ceil'],
- [Blockly.Msg.LANG_MATH_TO_FLOOR, 'floor'],
- [Blockly.Msg.MATH_ABS, 'abs'],
- [Blockly.Msg.MATH_SQ, 'sq'],
- [Blockly.Msg.MATH_SQRT, 'sqrt']
- ];
this.setColour(MATH_HUE);
this.appendValueInput('A')
.setCheck(Number)
- .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');
+ .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
this.setOutput(true, Number);
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/04.Mathematics.html#id18");
var thisBlock = this;
@@ -162,37 +154,47 @@ export const math_to_int = {
};
return TOOLTIPS[mode];
});
- }
+ },
+ OPERATORS: [
+ [Blockly.Msg.LANG_MATH_TO_ROUND, 'round'],
+ [Blockly.Msg.LANG_MATH_TO_CEIL, 'ceil'],
+ [Blockly.Msg.LANG_MATH_TO_FLOOR, 'floor'],
+ [Blockly.Msg.MATH_ABS, 'abs'],
+ [Blockly.Msg.MATH_SQ, 'sq'],
+ [Blockly.Msg.MATH_SQRT, 'sqrt']
+ ]
};
+
//变量定义
export const arduino_variate_type = {
init: function () {
- var DATATYPES = [
- [Blockly.Msg.LANG_MATH_INT, 'int'],
- [Blockly.Msg.LANG_MATH_UNSIGNED_INT, 'unsigned int'],
- [Blockly.Msg.LANG_MATH_WORD, 'word'],
- [Blockly.Msg.LANG_MATH_LONG, 'long'],
- [Blockly.Msg.LANG_MATH_UNSIGNED_LONG, 'unsigned long'],
- [Blockly.Msg.LANG_MATH_FLOAT, 'float'],
- [Blockly.Msg.LANG_MATH_DOUBLE, 'double'],
- [Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean'],
- [Blockly.Msg.LANG_MATH_BYTE, 'byte'],
- [Blockly.Msg.LANG_MATH_CHAR, 'char'],
- [Blockly.Msg.LANG_MATH_UNSIGNED_CHAR, 'unsigned char'],
- [Blockly.Msg.LANG_MATH_STRING, 'String'],
- ["uint8_t", "uint8_t"],
- ["uint16_t", "uint16_t"],
- ["uint32_t", "uint32_t"],
- ["uint64_t", "uint64_t"]
- ];
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown(DATATYPES), "variate_type");
+ .appendField(new Blockly.FieldDropdown(this.DATATYPES), "variate_type");
this.setOutput(true, null);
this.setColour(MATH_HUE);
this.setTooltip("");
this.setHelpUrl("");
- }
+ },
+ DATATYPES: [
+ [Blockly.Msg.LANG_MATH_INT, 'int'],
+ [Blockly.Msg.LANG_MATH_UNSIGNED_INT, 'unsigned int'],
+ [Blockly.Msg.LANG_MATH_WORD, 'word'],
+ [Blockly.Msg.LANG_MATH_LONG, 'long'],
+ [Blockly.Msg.LANG_MATH_UNSIGNED_LONG, 'unsigned long'],
+ [Blockly.Msg.LANG_MATH_FLOAT, 'float'],
+ [Blockly.Msg.LANG_MATH_DOUBLE, 'double'],
+ [Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean'],
+ [Blockly.Msg.LANG_MATH_BYTE, 'byte'],
+ [Blockly.Msg.LANG_MATH_CHAR, 'char'],
+ [Blockly.Msg.LANG_MATH_UNSIGNED_CHAR, 'unsigned char'],
+ [Blockly.Msg.LANG_MATH_STRING, 'String'],
+ ["uint8_t", "uint8_t"],
+ ["uint16_t", "uint16_t"],
+ ["uint32_t", "uint32_t"],
+ ["uint64_t", "uint64_t"]
+ ]
};
+
//获取某个变量在内存中所占用的字节数
export const math_SizeOf = {
init: function () {
@@ -206,18 +208,15 @@ export const math_SizeOf = {
this.setHelpUrl("");
}
};
+
//最大最小值
export const math_max_min = {
init: function () {
- var OPERATORS = [
- [Blockly.Msg.MIXLY_MAX, 'max'],
- [Blockly.Msg.MIXLY_MIN, 'min'],
- ];
this.setColour(MATH_HUE);
this.appendValueInput('A')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP')
+ .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP')
.appendField('(');
this.appendValueInput('B')
.setCheck(Number)
@@ -238,7 +237,11 @@ export const math_max_min = {
};
return TOOLTIPS[mode];
});
- }
+ },
+ OPERATORS: [
+ [Blockly.Msg.MIXLY_MAX, 'max'],
+ [Blockly.Msg.MIXLY_MIN, 'min'],
+ ]
};
export const math_random_seed = {
@@ -305,7 +308,10 @@ export const base_map = {
this.setColour(MATH_HUE);
this.appendValueInput("NUM", Number)
.appendField(Blockly.Msg.MIXLY_MAP)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.LANG_MATH_INT, "map_int"], [Blockly.Msg.LANG_MATH_FLOAT, "map_float"]]), "maptype")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.LANG_MATH_INT, "map_int"],
+ [Blockly.Msg.LANG_MATH_FLOAT, "map_float"]
+ ]), "maptype")
.setCheck(Number);
this.appendValueInput("fromLow", Number)
.appendField(Blockly.Msg.MIXLY_MAP_FROM)
@@ -335,7 +341,12 @@ export const variables_operation = {
.setCheck(null);
this.appendValueInput("data")
.setCheck(null)
- .appendField(new Blockly.FieldDropdown([["+=", "+"], ["-=", "-"], ["*=", "*"], ["/=", "/"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ ["+=", "+"],
+ ["-=", "-"],
+ ["*=", "*"],
+ ["/=", "/"]
+ ]), "type");
this.appendDummyInput();
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -349,7 +360,10 @@ export const math_auto_add_or_minus = {
this.appendValueInput("math_auto_add_minus_output")
.setCheck(null);
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([["++", "++"], ["--", "--"]]), "math_auto_add_minus_type");
+ .appendField(new Blockly.FieldDropdown([
+ ["++", "++"],
+ ["--", "--"]
+ ]), "math_auto_add_minus_type");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
diff --git a/boards/default_src/arduino_avr/blocks/pins.js b/boards/default_src/arduino_avr/blocks/pins.js
index f6ad109f..7ad5d81e 100644
--- a/boards/default_src/arduino_avr/blocks/pins.js
+++ b/boards/default_src/arduino_avr/blocks/pins.js
@@ -38,6 +38,7 @@ export const pins_interrupt = {
this.setOutput(true, Number);
}
};
+
export const pins_MOSI = {
init: function () {
this.setColour(PINS_HUE);
@@ -46,6 +47,7 @@ export const pins_MOSI = {
this.setOutput(true, Number);
}
};
+
export const pins_MISO = {
init: function () {
this.setColour(PINS_HUE);
@@ -54,6 +56,7 @@ export const pins_MISO = {
this.setOutput(true, Number);
}
};
+
export const pins_SCK = {
init: function () {
this.setColour(PINS_HUE);
@@ -62,6 +65,7 @@ export const pins_SCK = {
this.setOutput(true, Number);
}
};
+
export const pins_SCL = {
init: function () {
this.setColour(PINS_HUE);
@@ -70,6 +74,7 @@ export const pins_SCL = {
this.setOutput(true, Number);
}
};
+
export const pins_SDA = {
init: function () {
this.setColour(PINS_HUE);
diff --git a/boards/default_src/arduino_avr/blocks/scoop.js b/boards/default_src/arduino_avr/blocks/scoop.js
index 99c3e7f0..20a74bdf 100644
--- a/boards/default_src/arduino_avr/blocks/scoop.js
+++ b/boards/default_src/arduino_avr/blocks/scoop.js
@@ -4,10 +4,9 @@ const SCOOP_HUE = 120;
export const SCoopTask = {
init: function () {
- var _tasknum = [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"], ["7", "7"], ["8", "8"]];
this.appendDummyInput()
.appendField("Scoop Task")
- .appendField(new Blockly.FieldDropdown(_tasknum), "_tasknum");
+ .appendField(new Blockly.FieldDropdown(this.NUMBER), "_tasknum");
this.appendStatementInput("setup")
.appendField(Blockly.Msg.MIXLY_SETUP)
.setCheck(null);
@@ -17,7 +16,17 @@ export const SCoopTask = {
this.setColour(SCOOP_HUE);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SCOOP);
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#scoop-task");
- }
+ },
+ NUMBER: [
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"],
+ ["8", "8"]
+ ]
};
export const SCoop_yield = {
@@ -31,6 +40,7 @@ export const SCoop_yield = {
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#scoop-task");
}
};
+
export const SCoop_sleep = {
init: function () {
this.setColour(SCOOP_HUE);
diff --git a/boards/default_src/arduino_avr/blocks/sensor.js b/boards/default_src/arduino_avr/blocks/sensor.js
index 3a8022b1..ef01d104 100644
--- a/boards/default_src/arduino_avr/blocks/sensor.js
+++ b/boards/default_src/arduino_avr/blocks/sensor.js
@@ -139,16 +139,19 @@ export const LM35 = {
//DS18B20温度传感器
export const ds18b20 = {
init: function () {
- var UNIT = [[Blockly.Msg.MIXLY_DS18B20_C, '0'], [Blockly.Msg.MIXLY_DS18B20_F, '1']];
this.setColour(SENSOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_DS18B20)
.appendField(new Blockly.FieldDropdown(Profile.default.digital), "PIN")
.appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)
- .appendField(new Blockly.FieldDropdown(UNIT), "UNIT");
+ .appendField(new Blockly.FieldDropdown(this.UNIT), "UNIT");
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_DS18);
- }
+ },
+ UNIT: [
+ [Blockly.Msg.MIXLY_DS18B20_C, '0'],
+ [Blockly.Msg.MIXLY_DS18B20_F, '1']
+ ]
};
//初始化MLX90614红外测温传感器
@@ -170,21 +173,22 @@ export const mlx90614_init = {
//MLX90614获取数据
export const mlx90614_get_data = {
init: function () {
- var type = [
- [Blockly.Msg.MLX90614_TARGET_OBJECT_TEMP + "(℃)", "readObjectTempC"],
- [Blockly.Msg.MLX90614_TARGET_OBJECT_TEMP + "(℉)", "readObjectTempF"],
- [Blockly.Msg.MLX90614_AMBIENT_TEMP + "(℃)", "readAmbientTempC"],
- [Blockly.Msg.MLX90614_AMBIENT_TEMP + "(℉)", "readAmbientTempF"]];
this.appendDummyInput()
.appendField("MLX90614" + Blockly.Msg.MLX90614_TYPE)
.appendField(Blockly.Msg.MIXLY_GET)
- .appendField(new Blockly.FieldDropdown(type), "mlx90614_data");
+ .appendField(new Blockly.FieldDropdown(this.DATA_TYPE), "mlx90614_data");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(40);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_MLX90614_GET_DATA);
this.setHelpUrl("");
- }
+ },
+ DATA_TYPE: [
+ [Blockly.Msg.MLX90614_TARGET_OBJECT_TEMP + "(℃)", "readObjectTempC"],
+ [Blockly.Msg.MLX90614_TARGET_OBJECT_TEMP + "(℉)", "readObjectTempF"],
+ [Blockly.Msg.MLX90614_AMBIENT_TEMP + "(℃)", "readAmbientTempC"],
+ [Blockly.Msg.MLX90614_AMBIENT_TEMP + "(℉)", "readAmbientTempF"]
+ ]
};
//DF称重模块
@@ -232,16 +236,17 @@ export const DS1302_init = {
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_DS1302_INIT);
}
-}
+};
-var RTCTypeList = [['DS1307', 'RtcDS1307'], ['DS3231', 'RtcDS3231']];
//DS1307 RTC
export const DS1307_init = {
init: function () {
this.setColour(SENSOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RTCINIT);
- this.appendDummyInput("").setAlign(Blockly.inputs.Align.RIGHT).appendField(new Blockly.FieldDropdown(RTCTypeList), 'RTCType');
+ this.appendDummyInput("")
+ .setAlign(Blockly.inputs.Align.RIGHT)
+ .appendField(new Blockly.FieldDropdown(this.RTC_TYPE), 'RTCType');
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_PIN);
@@ -256,21 +261,10 @@ export const DS1307_init = {
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_DS1307_INIT);
- }
+ },
+ RTC_TYPE: [['DS1307', 'RtcDS1307'], ['DS3231', 'RtcDS3231']]
};
-//传感器-实时时钟块_时间变量
-var RTC_TIME_TYPE = [
- [Blockly.Msg.MIXLY_YEAR, "Year"],
- [Blockly.Msg.MIXLY_MONTH, "Month"],
- [Blockly.Msg.MIXLY_DAY, "Day"],
- [Blockly.Msg.MIXLY_HOUR, "Hour"],
- [Blockly.Msg.MIXLY_MINUTE, "Minute"],
- [Blockly.Msg.MIXLY_SECOND, "Second"],
- [Blockly.Msg.MIXLY_WEEK, "DayOfWeek"],
-
-];
-
//传感器-实时时钟块_获取时间
export const RTC_get_time = {
init: function () {
@@ -283,11 +277,20 @@ export const RTC_get_time = {
//.appendField(new Blockly.FieldTextInput('myRTC'), 'RTCName');
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(RTC_TIME_TYPE), "TIME_TYPE");
+ .appendField(new Blockly.FieldDropdown(this.RTC_TIME_TYPE), "TIME_TYPE");
this.setInputsInline(true);
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_RTC_GETTIME.replace('%1', this.getFieldValue("TIME_TYPE")));
- }
+ },
+ RTC_TIME_TYPE: [
+ [Blockly.Msg.MIXLY_YEAR, "Year"],
+ [Blockly.Msg.MIXLY_MONTH, "Month"],
+ [Blockly.Msg.MIXLY_DAY, "Day"],
+ [Blockly.Msg.MIXLY_HOUR, "Hour"],
+ [Blockly.Msg.MIXLY_MINUTE, "Minute"],
+ [Blockly.Msg.MIXLY_SECOND, "Second"],
+ [Blockly.Msg.MIXLY_WEEK, "DayOfWeek"]
+ ]
};
// //传感器-实时时钟块_设置时间
@@ -356,7 +359,10 @@ export const get_system_date_time = {
init: function () {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET + " " + Blockly.Msg.MIXLY_SYSTEM)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_GPS_DATE, "DATE"], [Blockly.Msg.MIXLY_GPS_TIME, "TIME"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_GPS_DATE, "DATE"],
+ [Blockly.Msg.MIXLY_GPS_TIME, "TIME"]
+ ]), "type");
this.setInputsInline(false);
this.setOutput(true, null);
this.setColour(40);
@@ -373,18 +379,12 @@ export const RTC_set_date = {
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_RTCSETDATE);
// .appendField(new Blockly.FieldTextInput('myRTC'), 'RTCName');
-
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_RTC_SETDATE);
}
};
-var SHT20_TYPE = [
- [Blockly.Msg.MIXLY_TEMPERATURE, "sht20.readTemperature()"],
- [Blockly.Msg.MIXLY_Humidity, "sht20.readHumidity()"],
-];
-
export const SHT20 = {
init: function () {
this.setColour(SENSOR_HUE);
@@ -392,22 +392,17 @@ export const SHT20 = {
.appendField("SHT20" + Blockly.Msg.MIXLY_DHT11_T_H);
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(SHT20_TYPE), "SHT20_TYPE");
+ .appendField(new Blockly.FieldDropdown(this.SHT20_TYPE), "SHT20_TYPE");
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip();
- }
+ },
+ SHT20_TYPE: [
+ [Blockly.Msg.MIXLY_TEMPERATURE, "sht20.readTemperature()"],
+ [Blockly.Msg.MIXLY_Humidity, "sht20.readHumidity()"],
+ ]
};
-var ADXL345_GETAB = [
- [Blockly.Msg.MixGo_MPU9250_AX, "accel.getAccelerationX()"],
- [Blockly.Msg.MixGo_MPU9250_AY, "accel.getAccelerationY()"],
- [Blockly.Msg.MixGo_MPU9250_AZ, "accel.getAccelerationZ()"],
- [Blockly.Msg.MixGo_MPU9250_AX + "(g)", "accel.getAccelerationX()/256.0"],
- [Blockly.Msg.MixGo_MPU9250_AY + "(g)", "accel.getAccelerationY()/256.0"],
- [Blockly.Msg.MixGo_MPU9250_AZ + "(g)", "accel.getAccelerationZ()/256.0"],
-];
-
//传感器-重力感应块-获取数据
export const ADXL345 = {
init: function () {
@@ -416,11 +411,19 @@ export const ADXL345 = {
.appendField(Blockly.Msg.MIXLY_ADXL345);
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(ADXL345_GETAB), "ADXL345_PIN");
+ .appendField(new Blockly.FieldDropdown(this.ADXL345_GETAB), "ADXL345_PIN");
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip();
- }
+ },
+ ADXL345_GETAB: [
+ [Blockly.Msg.MixGo_MPU9250_AX, "accel.getAccelerationX()"],
+ [Blockly.Msg.MixGo_MPU9250_AY, "accel.getAccelerationY()"],
+ [Blockly.Msg.MixGo_MPU9250_AZ, "accel.getAccelerationZ()"],
+ [Blockly.Msg.MixGo_MPU9250_AX + "(g)", "accel.getAccelerationX()/256.0"],
+ [Blockly.Msg.MixGo_MPU9250_AY + "(g)", "accel.getAccelerationY()/256.0"],
+ [Blockly.Msg.MixGo_MPU9250_AZ + "(g)", "accel.getAccelerationZ()/256.0"],
+ ]
};
var LIS3DHTR_GETDATA = [
@@ -454,7 +457,11 @@ export const ADXL345_setOffset = {
this.appendValueInput("OFFSET")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_DISPLAY_MATRIX_X, "setOffsetX"], [Blockly.Msg.MIXLY_DISPLAY_MATRIX_Y, "setOffsetY"], [Blockly.Msg.MIXLY_Z_AXIS, "setOffsetZ"]]), "MIXEPI_ADXL345_OFFSET");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_DISPLAY_MATRIX_X, "setOffsetX"],
+ [Blockly.Msg.MIXLY_DISPLAY_MATRIX_Y, "setOffsetY"],
+ [Blockly.Msg.MIXLY_Z_AXIS, "setOffsetZ"]
+ ]), "MIXEPI_ADXL345_OFFSET");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -495,7 +502,7 @@ export const MPU6050_update = {
}
};
-var Encoder_NO = [
+const Encoder_NO = [
[Blockly.Msg.MIXLY_ENCODER + 1, "1"],
[Blockly.Msg.MIXLY_ENCODER + 2, "2"],
[Blockly.Msg.MIXLY_ENCODER + 3, "3"],
@@ -709,20 +716,6 @@ export const sensor_encoder_handle = {
}
};
-const BMX280_VALUE_TYPE = {
- bme: [
- [Blockly.Msg.blynk_IOT_IR_TEMP, "readTemperature()"],
- [Blockly.Msg.MIXLY_Humidity, "readHumidity()"],
- [Blockly.Msg.MIXLY_Altitude, "readPressure()"],
- [Blockly.Msg.MIXLY_HEIGHT, "readAltitude(SEALEVELPRESSURE_HPA)"]
- ],
- bmp: [
- [Blockly.Msg.blynk_IOT_IR_TEMP, "readTemperature()"],
- [Blockly.Msg.MIXLY_Altitude, "readPressure()"],
- [Blockly.Msg.MIXLY_HEIGHT, "readAltitude(SEALEVELPRESSURE_HPA)"]
- ]
-};
-
//BME280读取
export const BME280_READ = {
init: function () {
@@ -734,11 +727,26 @@ export const BME280_READ = {
.appendField(Blockly.Msg.MIXLY_LCD_ADDRESS);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET)
- .appendField(new Blockly.FieldDependentDropdown("TYPE", BMX280_VALUE_TYPE, BMX280_VALUE_TYPE['bme']), 'BME_TYPE');
+ .appendField(new Blockly.FieldDependentDropdown(
+ "TYPE", this.BMX280_VALUE_TYPE, this.BMX280_VALUE_TYPE['bme']), 'BME_TYPE'
+ );
this.setOutput(true, null);
this.setInputsInline(true);
this.setTooltip("");
this.setHelpUrl("");
+ },
+ BMX280_VALUE_TYPE: {
+ bme: [
+ [Blockly.Msg.blynk_IOT_IR_TEMP, "readTemperature()"],
+ [Blockly.Msg.MIXLY_Humidity, "readHumidity()"],
+ [Blockly.Msg.MIXLY_Altitude, "readPressure()"],
+ [Blockly.Msg.MIXLY_HEIGHT, "readAltitude(SEALEVELPRESSURE_HPA)"]
+ ],
+ bmp: [
+ [Blockly.Msg.blynk_IOT_IR_TEMP, "readTemperature()"],
+ [Blockly.Msg.MIXLY_Altitude, "readPressure()"],
+ [Blockly.Msg.MIXLY_HEIGHT, "readAltitude(SEALEVELPRESSURE_HPA)"]
+ ]
}
};
@@ -759,7 +767,10 @@ export const PS2_init = {
.appendField(new Blockly.FieldDropdown(Profile.default.digital), "PS2_CLK");
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_setRumble)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, "true"], [Blockly.Msg.MIXLY_OFF, "false"]]), "rumble");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ON, "true"],
+ [Blockly.Msg.MIXLY_OFF, "false"]
+ ]), "rumble");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
@@ -782,71 +793,74 @@ export const PS2_update = {
}
};
-var PSBUTTON = [
- [Blockly.Msg.PS2_TRIANGLE, "PSB_GREEN"],
- [Blockly.Msg.PS2_CIRCLE, "PSB_RED"],
- [Blockly.Msg.PS2_CROSS, "PSB_BLUE"],
- [Blockly.Msg.PS2_SQUARE, "PSB_PINK"],
- [Blockly.Msg.PS2_L1, "PSB_L1"],
- [Blockly.Msg.PS2_L2, "PSB_L2"],
- // ["PSB_L3","PSB_L3"],
- [Blockly.Msg.PS2_R1, "PSB_R1"],
- [Blockly.Msg.PS2_R2, "PSB_R2"],
- // ["PSB_R3","PSB_R3"],
- [Blockly.Msg.PS2_UP, "PSB_PAD_UP"],
- [Blockly.Msg.PS2_RIGHT, "PSB_PAD_RIGHT"],
- [Blockly.Msg.PS2_DOWN, "PSB_PAD_DOWN"],
- [Blockly.Msg.PS2_LEFT, "PSB_PAD_LEFT"],
- [Blockly.Msg.PS2_SELECT, "PSB_SELECT"],
- [Blockly.Msg.PS2_START, "PSB_START"]
-];
-
//
export const PS2_Button = {
init: function () {
this.setColour(SENSOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_BUTTON)
- .appendField(new Blockly.FieldDropdown(PSBUTTON), "psbt")
+ .appendField(new Blockly.FieldDropdown(this.PSBUTTON), "psbt")
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_BUTTON_HOLD, "Button"], [Blockly.Msg.MIXLY_BUTTON_PRESSED, "ButtonPressed"], [Blockly.Msg.MIXLY_BUTTON_RELEASED, "ButtonReleased"], [Blockly.Msg.MIXLY_CHANGE, "NewButtonState"]]), "btstate");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_BUTTON_HOLD, "Button"],
+ [Blockly.Msg.MIXLY_BUTTON_PRESSED, "ButtonPressed"],
+ [Blockly.Msg.MIXLY_BUTTON_RELEASED, "ButtonReleased"],
+ [Blockly.Msg.MIXLY_CHANGE, "NewButtonState"]
+ ]), "btstate");
this.setOutput(true, Boolean);
this.setTooltip('');
- }
+ },
+ PSBUTTON: [
+ [Blockly.Msg.PS2_TRIANGLE, "PSB_GREEN"],
+ [Blockly.Msg.PS2_CIRCLE, "PSB_RED"],
+ [Blockly.Msg.PS2_CROSS, "PSB_BLUE"],
+ [Blockly.Msg.PS2_SQUARE, "PSB_PINK"],
+ [Blockly.Msg.PS2_L1, "PSB_L1"],
+ [Blockly.Msg.PS2_L2, "PSB_L2"],
+ // ["PSB_L3","PSB_L3"],
+ [Blockly.Msg.PS2_R1, "PSB_R1"],
+ [Blockly.Msg.PS2_R2, "PSB_R2"],
+ // ["PSB_R3","PSB_R3"],
+ [Blockly.Msg.PS2_UP, "PSB_PAD_UP"],
+ [Blockly.Msg.PS2_RIGHT, "PSB_PAD_RIGHT"],
+ [Blockly.Msg.PS2_DOWN, "PSB_PAD_DOWN"],
+ [Blockly.Msg.PS2_LEFT, "PSB_PAD_LEFT"],
+ [Blockly.Msg.PS2_SELECT, "PSB_SELECT"],
+ [Blockly.Msg.PS2_START, "PSB_START"]
+ ]
};
export const PS2_stk = {
init: function () {
this.setColour(SENSOR_HUE);
- var PSSTK = [
- [Blockly.Msg.PS2_RX, "PSS_RX"],
- [Blockly.Msg.PS2_RY, "PSS_RY"],
- [Blockly.Msg.PS2_LX, "PSS_LX"],
- [Blockly.Msg.PS2_LY, "PSS_LY"],
- ];
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_stick)
- .appendField(new Blockly.FieldDropdown(PSSTK), "psstk");
+ .appendField(new Blockly.FieldDropdown(this.PSSTK), "psstk");
this.setOutput(true, Number);
this.setTooltip('');
- }
+ },
+ PSSTK: [
+ [Blockly.Msg.PS2_RX, "PSS_RX"],
+ [Blockly.Msg.PS2_RY, "PSS_RY"],
+ [Blockly.Msg.PS2_LX, "PSS_LX"],
+ [Blockly.Msg.PS2_LY, "PSS_LY"],
+ ]
};
-var DF_TCS34725_COLOR = [
- [Blockly.Msg.COLOUR_RGB_RED, "tcs34725.getRedToGamma()"],
- [Blockly.Msg.COLOUR_RGB_GREEN, "tcs34725.getGreenToGamma()"],
- [Blockly.Msg.COLOUR_RGB_BLUE, "tcs34725.getBlueToGamma()"],
-];
-
export const TCS34725_Get_RGB = {
init: function () {
this.setColour(SENSOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.TCS34725_Get_RGB)
- .appendField(new Blockly.FieldDropdown(DF_TCS34725_COLOR), "DF_TCS34725_COLOR");
+ .appendField(new Blockly.FieldDropdown(this.DF_TCS34725_COLOR), "DF_TCS34725_COLOR");
this.setInputsInline(true);
this.setOutput(true);
- }
+ },
+ DF_TCS34725_COLOR: [
+ [Blockly.Msg.COLOUR_RGB_RED, "tcs34725.getRedToGamma()"],
+ [Blockly.Msg.COLOUR_RGB_GREEN, "tcs34725.getGreenToGamma()"],
+ [Blockly.Msg.COLOUR_RGB_BLUE, "tcs34725.getBlueToGamma()"],
+ ]
};
//初始化TCS230颜色传感器
@@ -1050,18 +1064,6 @@ export const arduino_keypad_event = {
}
};
-var MixGo_MPU9250_GETAB = [
- [Blockly.Msg.MixGo_MPU9250_AX, "a"],
- [Blockly.Msg.MixGo_MPU9250_AY, "b"],
- [Blockly.Msg.MixGo_MPU9250_AZ, "c"],
- [Blockly.Msg.MixGo_MPU9250_GX, "d"],
- [Blockly.Msg.MixGo_MPU9250_GY, "e"],
- [Blockly.Msg.MixGo_MPU9250_GZ, "f"],
- [Blockly.Msg.MixGo_MPU9250_MX, "g"],
- [Blockly.Msg.MixGo_MPU9250_MY, "h"],
- [Blockly.Msg.MixGo_MPU9250_MZ, "i"]
-];
-
//传感器_重力感应块_获取9轴数据
export const mixgo_MPU9250 = {
init: function () {
@@ -1070,12 +1072,23 @@ export const mixgo_MPU9250 = {
.appendField("MPU9250" + Blockly.Msg.MixGo_MPU9250);
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(MixGo_MPU9250_GETAB), "MixGo_MPU9250_GETAB");
+ .appendField(new Blockly.FieldDropdown(this.MixGo_MPU9250_GETAB), "MixGo_MPU9250_GETAB");
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip("");
this.setHelpUrl('');
- }
+ },
+ MixGo_MPU9250_GETAB: [
+ [Blockly.Msg.MixGo_MPU9250_AX, "a"],
+ [Blockly.Msg.MixGo_MPU9250_AY, "b"],
+ [Blockly.Msg.MixGo_MPU9250_AZ, "c"],
+ [Blockly.Msg.MixGo_MPU9250_GX, "d"],
+ [Blockly.Msg.MixGo_MPU9250_GY, "e"],
+ [Blockly.Msg.MixGo_MPU9250_GZ, "f"],
+ [Blockly.Msg.MixGo_MPU9250_MX, "g"],
+ [Blockly.Msg.MixGo_MPU9250_MY, "h"],
+ [Blockly.Msg.MixGo_MPU9250_MZ, "i"]
+ ]
};
//NTC电阻
@@ -1120,4 +1133,4 @@ export const AHT20_21 = {
this.setOutput(true);
this.setTooltip();
}
-};
+};
\ No newline at end of file
diff --git a/boards/default_src/arduino_avr/blocks/serial.js b/boards/default_src/arduino_avr/blocks/serial.js
index 7efcd039..bf5fdf7e 100644
--- a/boards/default_src/arduino_avr/blocks/serial.js
+++ b/boards/default_src/arduino_avr/blocks/serial.js
@@ -35,7 +35,10 @@ export const serial_print = {
this.appendValueInput("CONTENT", String)
.appendField(new Blockly.FieldDropdown(Profile.default.serial_select), "serial_select")
.appendField(Blockly.Msg.MIXLY_SERIAL_PRINT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PRINT_INLINE, "print"], [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]]), "new_line");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_PRINT_INLINE, "print"],
+ [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]
+ ]), "new_line");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);
@@ -48,24 +51,34 @@ export const serial_println = {
this.appendValueInput("CONTENT", String)
.appendField(new Blockly.FieldDropdown(Profile.default.serial_select), "serial_select")
.appendField(Blockly.Msg.MIXLY_SERIAL_PRINT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"], [Blockly.Msg.MIXLY_PRINT_INLINE, "print"]]), "new_line");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"],
+ [Blockly.Msg.MIXLY_PRINT_INLINE, "print"]
+ ]), "new_line");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);
}
};
-
export const serial_print_num = {
init: function () {
this.setColour(SERIAL_HUE);
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown(Profile.default.serial_select), "serial_select")
.appendField(Blockly.Msg.MIXLY_SERIAL_PRINT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PRINT_INLINE, "print"], [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]]), "new_line")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_PRINT_INLINE, "print"],
+ [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]
+ ]), "new_line")
.appendField(Blockly.Msg.MIXLY_NUMBER);
this.appendValueInput("CONTENT", Number)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MATH_HEX, "HEX"], [Blockly.Msg.MATH_BIN, "BIN"], [Blockly.Msg.MATH_OCT, "OCT"], [Blockly.Msg.MATH_DEC, "DEC"]]), "STAT")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MATH_HEX, "HEX"],
+ [Blockly.Msg.MATH_BIN, "BIN"],
+ [Blockly.Msg.MATH_OCT, "OCT"],
+ [Blockly.Msg.MATH_DEC, "DEC"]
+ ]), "STAT")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -117,7 +130,12 @@ export const serial_parseInt_Float = {
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown(Profile.default.serial_select), "serial_select")
//.appendField(Blockly.Msg.MIXLY_SERIAL_READ)
- .appendField(new Blockly.FieldDropdown([["read", "read"], ["peek", "peek"], ["parseInt", "parseInt"], ["parseFloat", "parseFloat"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ ["read", "read"],
+ ["peek", "peek"],
+ ["parseInt", "parseInt"],
+ ["parseFloat", "parseFloat"]
+ ]), "STAT");
this.setOutput(true, Number);
var thisBlock = this;
this.setTooltip(function () {
@@ -142,6 +160,7 @@ export const serial_flush = {
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SERIAL_FLUSH);
}
};
+
export const serial_softserial = {
init: function () {
this.setColour(SERIAL_HUE);
diff --git a/boards/default_src/arduino_avr/blocks/storage.js b/boards/default_src/arduino_avr/blocks/storage.js
index 4dfe48ea..843b6ac6 100644
--- a/boards/default_src/arduino_avr/blocks/storage.js
+++ b/boards/default_src/arduino_avr/blocks/storage.js
@@ -94,25 +94,24 @@ export const sd_card_root_files = {
}
};
-var volume_TYPE = [
- [Blockly.Msg.MIXLY_SD_clusterCount, 'volume.clusterCount()'],
- [Blockly.Msg.MIXLY_SD_blocksPerCluster, 'volume.blocksPerCluster()'],
- [Blockly.Msg.MIXLY_SD_TOTAL_blocks, 'volume.blocksPerCluster() * volume.clusterCount()'],
- ["FAT" + Blockly.Msg.MIXLY_TYPE, 'volume.fatType()'],
- [Blockly.Msg.MIXLY_volume + "(KB)", 'volume.blocksPerCluster()*volume.clusterCount()/2'],
- [Blockly.Msg.MIXLY_volume + "(MB)", 'volume.blocksPerCluster()*volume.clusterCount()/2/1024'],
- [Blockly.Msg.MIXLY_volume + "(GB)", 'volume.blocksPerCluster()*volume.clusterCount()/2/1024/1024.0'],
-];
-
export const sd_volume = {
init: function () {
this.setColour(STORAGE_HUE);
this.appendDummyInput()
.appendField("SD")
- .appendField(new Blockly.FieldDropdown(volume_TYPE), 'volume_TYPE');
+ .appendField(new Blockly.FieldDropdown(this.VOLUME_TYPE), 'volume_TYPE');
this.setOutput(true, Number);
this.setTooltip();
- }
+ },
+ VOLUME_TYPE: [
+ [Blockly.Msg.MIXLY_SD_clusterCount, 'volume.clusterCount()'],
+ [Blockly.Msg.MIXLY_SD_blocksPerCluster, 'volume.blocksPerCluster()'],
+ [Blockly.Msg.MIXLY_SD_TOTAL_blocks, 'volume.blocksPerCluster() * volume.clusterCount()'],
+ ["FAT" + Blockly.Msg.MIXLY_TYPE, 'volume.fatType()'],
+ [Blockly.Msg.MIXLY_volume + "(KB)", 'volume.blocksPerCluster()*volume.clusterCount()/2'],
+ [Blockly.Msg.MIXLY_volume + "(MB)", 'volume.blocksPerCluster()*volume.clusterCount()/2/1024'],
+ [Blockly.Msg.MIXLY_volume + "(GB)", 'volume.blocksPerCluster()*volume.clusterCount()/2/1024/1024.0'],
+ ]
};
export const sd_exist = {
@@ -230,7 +229,6 @@ export const store_eeprom_put = {
this.appendValueInput("ADDRESS")
.setCheck(null)
.appendField(Blockly.Msg.MIXLY_ESP32_WRITE)
- //.appendField(new Blockly.FieldDropdown([[Blockly.Msg.LANG_MATH_INT,"int"],[Blockly.Msg.LANG_MATH_LONG,"long"],[Blockly.Msg.LANG_MATH_FLOAT,"float"],[Blockly.Msg.LANG_MATH_BYTE,"byte"],["字节数组","byte_array"],["字符数组","char_array"]]), "type")
.appendField("EEPROM")
.appendField(Blockly.Msg.MQTT_SERVER_ADD);
this.appendValueInput("DATA")
@@ -249,7 +247,6 @@ export const store_eeprom_get = {
this.appendValueInput("ADDRESS")
.setCheck(null)
.appendField(Blockly.Msg.MIXLY_SERIAL_READ)
- //.appendField(new Blockly.FieldDropdown([[Blockly.Msg.LANG_MATH_INT,"int"],[Blockly.Msg.LANG_MATH_LONG,"long"],[Blockly.Msg.LANG_MATH_FLOAT,"float"],[Blockly.Msg.LANG_MATH_BYTE,"byte"],["字节数组","byte_array"],["字符数组","char_array"]]), "type")
.appendField("EEPROM")
.appendField(Blockly.Msg.MQTT_SERVER_ADD);
this.appendValueInput("DATA")
@@ -262,11 +259,6 @@ export const store_eeprom_get = {
}
};
-//ESP32简化SPIFFS
-var OPEN_MODE1 = [
- [Blockly.Msg.TEXT_WRITE_TEXT, '1'],
- [Blockly.Msg.TEXT_APPEND_APPENDTEXT, '2']]
-
export const simple_spiffs_read = {
init: function () {
this.appendValueInput("FileName")
@@ -293,11 +285,15 @@ export const simple_spiffs_store_spiffs_write = {
.appendField(Blockly.Msg.MIXLY_SD_NEWLINE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MODE)
- .appendField(new Blockly.FieldDropdown(OPEN_MODE1), 'MODE');
+ .appendField(new Blockly.FieldDropdown(this.OPEN_MODE), 'MODE');
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_STORE_SDWRITE);
- }
+ },
+ OPEN_MODE: [
+ [Blockly.Msg.TEXT_WRITE_TEXT, '1'],
+ [Blockly.Msg.TEXT_APPEND_APPENDTEXT, '2']
+ ]
};
export const simple_spiffs_DelFile = {
diff --git a/boards/default_src/arduino_avr/blocks/text.js b/boards/default_src/arduino_avr/blocks/text.js
index 01ef0dc4..de91fd54 100644
--- a/boards/default_src/arduino_avr/blocks/text.js
+++ b/boards/default_src/arduino_avr/blocks/text.js
@@ -33,7 +33,7 @@ export const text = {
}
};
-Blockly.FieldTextInput.char_validator = function (text) {
+const charValidator = function (text) {
if (text.length > 1) {
if (text.charAt(0) === "\\") {
var charAtOne = text.charAt(1);
@@ -59,7 +59,7 @@ export const text_char = {
this.setColour(TEXTS_HUE);
this.appendDummyInput()
.appendField(this.newQuote_(true))
- .appendField(new Blockly.FieldTextInput('', Blockly.FieldTextInput.char_validator), 'TEXT')
+ .appendField(new Blockly.FieldTextInput('', charValidator), 'TEXT')
.appendField(this.newQuote_(false));
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.TEXT_CHAR_TOOLTIP);
@@ -75,7 +75,6 @@ export const text_char = {
}
};
-
export const text_join = {
init: function () {
this.setColour(TEXTS_HUE);
@@ -90,7 +89,6 @@ export const text_join = {
}
};
-
export const text_to_number = {
init: function () {
var TO_INT_FLOAT = [
@@ -131,7 +129,7 @@ export const char_to_ascii = {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_TOASCII)
.appendField("'")
- .appendField(new Blockly.FieldTextInput('', Blockly.FieldTextInput.char_validator), 'TEXT')
+ .appendField(new Blockly.FieldTextInput('', charValidator), 'TEXT')
.appendField("'");
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_TEXT_TOASCII);
@@ -176,7 +174,7 @@ export const text_length = {
this.setOutput(true, Number);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_TEXT_LENGTH);
}
-}
+};
export const text_char_at = {
init: function () {
@@ -195,20 +193,15 @@ export const text_char_at = {
return Blockly.Msg.MIXLY_TOOLTIP_TEXT_FIND_CHAR_AT.replace('%1', Blockly.Arduino.valueToCode(self, 'VAR', Blockly.Arduino.ORDER_ATOMIC));
});
}
-}
+};
export const text_equals_starts_ends = {
init: function () {
- var TEXT_DOWHAT = [
- [Blockly.Msg.MIXLY_EQUALS, 'equals'],
- [Blockly.Msg.MIXLY_STARTSWITH, 'startsWith'],
- [Blockly.Msg.MIXLY_ENDSWITH, 'endsWith']
- ];
this.setColour(TEXTS_HUE);
this.appendValueInput("STR1")
.setCheck([String, Number]);
this.appendValueInput("STR2")
- .appendField(new Blockly.FieldDropdown(TEXT_DOWHAT), 'DOWHAT')
+ .appendField(new Blockly.FieldDropdown(this.TEXT_DOWHAT), 'DOWHAT')
.setCheck([String, Number]);
this.setOutput(true, [Boolean, Number]);
this.setInputsInline(true);
@@ -222,8 +215,13 @@ export const text_equals_starts_ends = {
};
return Blockly.Msg.MIXLY_TOOLTIP_TEXT_EQUALS_STARTS_ENDS.replace('%1', TOOLTIPS[op]).replace('%2', Blockly.Arduino.valueToCode(self, 'STR2', Blockly.Arduino.ORDER_ATOMIC));
});
- }
-}
+ },
+ TEXT_DOWHAT: [
+ [Blockly.Msg.MIXLY_EQUALS, 'equals'],
+ [Blockly.Msg.MIXLY_STARTSWITH, 'startsWith'],
+ [Blockly.Msg.MIXLY_ENDSWITH, 'endsWith']
+ ]
+};
export const text_compareTo = {
init: function () {
@@ -237,7 +235,8 @@ export const text_compareTo = {
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_COMPARETO_HELP);
}
-}
+};
+
//小数获取有效位
export const decimal_places = {
init: function () {
@@ -255,6 +254,7 @@ export const decimal_places = {
this.setHelpUrl("");
}
};
+
//截取字符串
export const substring = {
init: function () {
@@ -274,6 +274,7 @@ export const substring = {
this.setHelpUrl("");
}
};
+
//字符串转化为大小写
export const letter_conversion = {
init: function () {
@@ -282,7 +283,10 @@ export const letter_conversion = {
.appendField(Blockly.Msg.STRING_VARIABLE);
this.appendDummyInput()
.appendField(Blockly.Msg.LETTERS_ARE_CONVERTED_TO)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.CAPITAL, ".toUpperCase()"], [Blockly.Msg.LOWER_CASE, ".toLowerCase()"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.CAPITAL, ".toUpperCase()"],
+ [Blockly.Msg.LOWER_CASE, ".toLowerCase()"]
+ ]), "type");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(TEXTS_HUE);
@@ -338,7 +342,10 @@ export const first_and_last = {
.setCheck(null)
.appendField(Blockly.Msg.AS_A_STRING);
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.STARTSWITH, ".startsWith"], [Blockly.Msg.ENDSWITH, ".endsWith"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.STARTSWITH, ".startsWith"],
+ [Blockly.Msg.ENDSWITH, ".endsWith"]
+ ]), "type");
this.setOutput(true, null);
this.setColour(TEXTS_HUE);
this.setTooltip(Blockly.Msg.FIRST_AND_LAST_HELP);
@@ -352,7 +359,15 @@ export const type_conversion = {
this.appendValueInput("variable")
.setCheck(null)
.appendField(Blockly.Msg.DATA_TYPE_CONVERSION)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.LANG_MATH_STRING, "String"], [Blockly.Msg.LANG_MATH_CHAR, "char"], [Blockly.Msg.LANG_MATH_BYTE, "byte"], [Blockly.Msg.LANG_MATH_INT, "int"], [Blockly.Msg.LANG_MATH_LONG, "long"], [Blockly.Msg.LANG_MATH_FLOAT, "float"], [Blockly.Msg.LANG_MATH_WORD, "word"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.LANG_MATH_STRING, "String"],
+ [Blockly.Msg.LANG_MATH_CHAR, "char"],
+ [Blockly.Msg.LANG_MATH_BYTE, "byte"],
+ [Blockly.Msg.LANG_MATH_INT, "int"],
+ [Blockly.Msg.LANG_MATH_LONG, "long"],
+ [Blockly.Msg.LANG_MATH_FLOAT, "float"],
+ [Blockly.Msg.LANG_MATH_WORD, "word"]
+ ]), "type");
this.setOutput(true, null);
this.setColour(TEXTS_HUE);
this.setTooltip(Blockly.Msg.TYPE_CONVERSION_HELP);
@@ -559,7 +574,13 @@ export const String_to_Long_Integer = {
this.appendValueInput("data")
.setCheck(null)
.appendField(Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING + Blockly.Msg.A_TO_B + Blockly.Msg.LANG_MATH_LONG)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MATH_HEX, "16"], [Blockly.Msg.MATH_DEC, "10"], [Blockly.Msg.MATH_OCT, "8"], [Blockly.Msg.MATH_BIN, "2"], [Blockly.Msg.blynk_IOT_AUTO, "0"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MATH_HEX, "16"],
+ [Blockly.Msg.MATH_DEC, "10"],
+ [Blockly.Msg.MATH_OCT, "8"],
+ [Blockly.Msg.MATH_BIN, "2"],
+ [Blockly.Msg.blynk_IOT_AUTO, "0"]
+ ]), "type");
this.setOutput(true, null);
this.setColour(TEXTS_HUE);
this.setTooltip("");
diff --git a/boards/default_src/arduino_avr/blocks/tools.js b/boards/default_src/arduino_avr/blocks/tools.js
index 996748da..54cb9f0f 100644
--- a/boards/default_src/arduino_avr/blocks/tools.js
+++ b/boards/default_src/arduino_avr/blocks/tools.js
@@ -27,7 +27,6 @@ export const folding_block = {
}
};
-
//IIC地址查找
export const IICSCAN = {
init: function () {
diff --git a/boards/default_src/arduino_avr/template.xml b/boards/default_src/arduino_avr/template.xml
index 2c393a0e..ae70d5c5 100644
--- a/boards/default_src/arduino_avr/template.xml
+++ b/boards/default_src/arduino_avr/template.xml
@@ -3297,16 +3297,6 @@
-
-
- V0
-
-
-
- V0
-
-
-
0
diff --git a/boards/default_src/arduino_esp32/blocks/actuator.js b/boards/default_src/arduino_esp32/blocks/actuator.js
index 1a4cf0c1..33fd4b14 100644
--- a/boards/default_src/arduino_esp32/blocks/actuator.js
+++ b/boards/default_src/arduino_esp32/blocks/actuator.js
@@ -97,7 +97,6 @@ export const motor_id = {
}
};
-
export const HR8833_Motor_Setup = {
init: function () {
this.setColour(ACTUATOR_HUE);
diff --git a/boards/default_src/arduino_esp32/blocks/communicate.js b/boards/default_src/arduino_esp32/blocks/communicate.js
index d6826698..da8ca718 100644
--- a/boards/default_src/arduino_esp32/blocks/communicate.js
+++ b/boards/default_src/arduino_esp32/blocks/communicate.js
@@ -14,6 +14,7 @@ export const serialBT_Init = {
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SERIAL_BEGIN);
}
};
+
export const serialBT_available = {
init: function () {
this.setColour(COMMUNICATE_HUE);
@@ -34,6 +35,7 @@ export const serialBT_read = {
}
};
+
export const serialBT_write = {
init: function () {
this.setColour(COMMUNICATE_HUE);
@@ -43,5 +45,4 @@ export const serialBT_write = {
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.TEXT_WRITE_TOOLTIP);
}
-};
-
+};
\ No newline at end of file
diff --git a/boards/default_src/arduino_esp32/blocks/control.js b/boards/default_src/arduino_esp32/blocks/control.js
index 4ee59b4d..528f290c 100644
--- a/boards/default_src/arduino_esp32/blocks/control.js
+++ b/boards/default_src/arduino_esp32/blocks/control.js
@@ -7,14 +7,22 @@ export const controls_hw_timer = {
this.setColour(LOOPS_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_ESP32_HW_TIMER)
- .appendField(new Blockly.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"]]), "TIMER_NUM");
+ .appendField(new Blockly.FieldDropdown([
+ ["0", "0"],
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"]
+ ]), "TIMER_NUM");
this.appendValueInput('TIME')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_MSTIMER2_EVERY);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MILLIS)
.appendField(Blockly.Msg.MIXLY_MODE)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PYTHON_ONE_SHOT, "false"], [Blockly.Msg.MIXLY_PYTHON_PERIODIC, "true"]]), "mode");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_PYTHON_ONE_SHOT, "false"],
+ [Blockly.Msg.MIXLY_PYTHON_PERIODIC, "true"]
+ ]), "mode");
this.appendStatementInput('DO')
.appendField(Blockly.Msg.MIXLY_MSTIMER2_DO);
this.setPreviousStatement(false);
@@ -28,9 +36,21 @@ export const controls_runnig_core = {
this.appendDummyInput()
.appendField("ESP32")
.appendField("Task")
- .appendField(new Blockly.FieldDropdown([["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"], ["7", "7"], ["8", "8"]]), "task")
+ .appendField(new Blockly.FieldDropdown([
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"],
+ ["8", "8"]
+ ]), "task")
.appendField("Core")
- .appendField(new Blockly.FieldDropdown([["0", "0"], ["1", "1"]]), "core");
+ .appendField(new Blockly.FieldDropdown([
+ ["0", "0"],
+ ["1", "1"]
+ ]), "core");
this.appendValueInput("length")
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -61,12 +81,18 @@ export const control_core_delay = {
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SCOOP_SLEEP);
}
};
+
export const controls_hw_timer_start = {
init: function () {
this.setColour(LOOPS_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_ESP32_HW_TIMER)
- .appendField(new Blockly.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"]]), "TIMER_NUM")
+ .appendField(new Blockly.FieldDropdown([
+ ["0", "0"],
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"]
+ ]), "TIMER_NUM")
.appendField(Blockly.Msg.MIXLY_MSTIMER2_START);
this.setPreviousStatement(true);
this.setNextStatement(true);
@@ -79,7 +105,12 @@ export const controls_hw_timer_stop = {
this.setColour(LOOPS_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_ESP32_HW_TIMER)
- .appendField(new Blockly.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"]]), "TIMER_NUM")
+ .appendField(new Blockly.FieldDropdown([
+ ["0", "0"],
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"]
+ ]), "TIMER_NUM")
.appendField(Blockly.Msg.MIXLY_STOP);
this.setPreviousStatement(true);
this.setNextStatement(true);
diff --git a/boards/default_src/arduino_esp32/blocks/ethernet.js b/boards/default_src/arduino_esp32/blocks/ethernet.js
index 77c6d0fa..446971b8 100644
--- a/boards/default_src/arduino_esp32/blocks/ethernet.js
+++ b/boards/default_src/arduino_esp32/blocks/ethernet.js
@@ -44,7 +44,11 @@ export const esp32_wifi_connection_event = {
init: function () {
this.appendDummyInput()
.appendField("WiFi连接事件")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ESP32_WIFI_CONNECTION_EVENT1, "1"], [Blockly.Msg.MIXLY_ESP32_WIFI_CONNECTION_EVENT2, "2"], [Blockly.Msg.MIXLY_ESP32_WIFI_CONNECTION_EVENT3, "3"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_ESP32_WIFI_CONNECTION_EVENT1, "1"],
+ [Blockly.Msg.MIXLY_ESP32_WIFI_CONNECTION_EVENT2, "2"],
+ [Blockly.Msg.MIXLY_ESP32_WIFI_CONNECTION_EVENT3, "3"]
+ ]), "type");
this.appendStatementInput("event")
.setCheck(null);
this.setColour(ETHERNET_HUE);
diff --git a/boards/default_src/arduino_esp32/blocks/handbit.js b/boards/default_src/arduino_esp32/blocks/handbit.js
index 0bf261c6..a1a2ebaf 100644
--- a/boards/default_src/arduino_esp32/blocks/handbit.js
+++ b/boards/default_src/arduino_esp32/blocks/handbit.js
@@ -73,22 +73,6 @@ export const touchAttachInterrupt = {
}
};
-var HANDBIT_MSA300_GETAB = [
- [Blockly.Msg.MixGo_MPU9250_AX, "msa.getX()"],
- [Blockly.Msg.MixGo_MPU9250_AY, "msa.getY()"],
- [Blockly.Msg.MixGo_MPU9250_AZ, "msa.getZ()"],
-];
-
-var HANDBIT_MSA300_ACTION = [
- [Blockly.Msg.HANDBIT_FORWARD, "msa.getX()>1500&&msa.getX()<2000&&msa.getZ()>-1000&&msa.getZ()<0"],
- [Blockly.Msg.HANDBIT_BACKWARD, "msa.getX()>1500&&msa.getX()<2000&&msa.getZ()>0&&msa.getZ()<1500"],
- [Blockly.Msg.HANDBIT_LEFT, "msa.getY()<1000&&msa.getY()>0"],
- [Blockly.Msg.HANDBIT_RIGHT, "msa.getY()<0&&msa.getY()>-1000"],
- [Blockly.Msg.HANDBIT_UP, "msa.getX()>-400&&msa.getX()<400&&msa.getY()>-400&&msa.getY()<400&&msa.getZ()>-1800&&msa.getZ()<-1400"],
- [Blockly.Msg.HANDBIT_DOWN, "msa.getX()>-400&&msa.getX()<400&&msa.getY()>-400&&msa.getY()<400&&msa.getZ()>2000&&msa.getZ()<2400"],
-
-];
-
//传感器_重力感应
export const handbit_MSA300 = {
init: function () {
@@ -97,12 +81,17 @@ export const handbit_MSA300 = {
.appendField(Blockly.Msg.MixGo_MPU9250);
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(HANDBIT_MSA300_GETAB), "HANDBIT_MSA300_GETAB");
+ .appendField(new Blockly.FieldDropdown(this.HANDBIT_MSA300_GETAB), "HANDBIT_MSA300_GETAB");
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip("");
this.setHelpUrl('');
- }
+ },
+ HANDBIT_MSA300_GETAB: [
+ [Blockly.Msg.MixGo_MPU9250_AX, "msa.getX()"],
+ [Blockly.Msg.MixGo_MPU9250_AY, "msa.getY()"],
+ [Blockly.Msg.MixGo_MPU9250_AZ, "msa.getZ()"],
+ ]
};
export const handbit_MSA300_action = {
@@ -112,12 +101,20 @@ export const handbit_MSA300_action = {
.appendField(Blockly.Msg.Handbit);
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(HANDBIT_MSA300_ACTION), "HANDBIT_MSA300_ACTION");
+ .appendField(new Blockly.FieldDropdown(this.HANDBIT_MSA300_ACTION), "HANDBIT_MSA300_ACTION");
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip("");
this.setHelpUrl('');
- }
+ },
+ HANDBIT_MSA300_ACTION: [
+ [Blockly.Msg.HANDBIT_FORWARD, "msa.getX()>1500&&msa.getX()<2000&&msa.getZ()>-1000&&msa.getZ()<0"],
+ [Blockly.Msg.HANDBIT_BACKWARD, "msa.getX()>1500&&msa.getX()<2000&&msa.getZ()>0&&msa.getZ()<1500"],
+ [Blockly.Msg.HANDBIT_LEFT, "msa.getY()<1000&&msa.getY()>0"],
+ [Blockly.Msg.HANDBIT_RIGHT, "msa.getY()<0&&msa.getY()>-1000"],
+ [Blockly.Msg.HANDBIT_UP, "msa.getX()>-400&&msa.getX()<400&&msa.getY()>-400&&msa.getY()<400&&msa.getZ()>-1800&&msa.getZ()<-1400"],
+ [Blockly.Msg.HANDBIT_DOWN, "msa.getX()>-400&&msa.getX()<400&&msa.getY()>-400&&msa.getY()<400&&msa.getZ()>2000&&msa.getZ()<2400"],
+ ]
};
export const handbit_rgb_rainbow1 = {
@@ -135,18 +132,13 @@ export const handbit_rgb_rainbow1 = {
}
};
-var DISPLAY_RAINBOW_TYPE = [
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
-];
-
export const handbit_rgb_rainbow3 = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RGB);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown(DISPLAY_RAINBOW_TYPE), "TYPE");
+ .appendField(new Blockly.FieldDropdown(this.DISPLAY_RAINBOW_TYPE), "TYPE");
this.appendValueInput("rainbow_color")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -154,7 +146,11 @@ export const handbit_rgb_rainbow3 = {
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
- }
+ },
+ DISPLAY_RAINBOW_TYPE: [
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
+ ]
};
export const handbit_rgb = {
diff --git a/boards/default_src/arduino_esp32/blocks/inout.js b/boards/default_src/arduino_esp32/blocks/inout.js
index 1cfcdc5c..652d69af 100644
--- a/boards/default_src/arduino_esp32/blocks/inout.js
+++ b/boards/default_src/arduino_esp32/blocks/inout.js
@@ -2,7 +2,7 @@ import * as Blockly from 'blockly/core';
import { Profile } from 'mixly';
import { inout_analog_write } from '@mixly/arduino-avr/blocks/inout';
-const BASE_HUE = 20//'#ae3838';//40;
+const BASE_HUE = 20;
export const ledcSetup = {
init: function () {
@@ -40,6 +40,7 @@ export const ledcAttachPin = {
this.setTooltip();
}
};
+
export const ledcDetachPin = {
init: function () {
this.setColour(BASE_HUE);
@@ -52,6 +53,7 @@ export const ledcDetachPin = {
this.setTooltip();
}
};
+
export const ledcWrite = inout_analog_write;
export const inout_touchRead = {
@@ -85,6 +87,7 @@ export const touchAttachInterrupt = {
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);
}
};
+
export const inout_esp32_dac = {
init: function () {
this.appendValueInput("value")
@@ -110,7 +113,24 @@ export const esp32_led_pwm = {
.appendField(Blockly.Msg.MIXLY_FREQUENCY)
.appendField(new Blockly.FieldTextInput("5000"), "freq")
.appendField(Blockly.Msg.MIXLY_CHANNEL)
- .appendField(new Blockly.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"], ["7", "7"], ["8", "8"], ["9", "9"], ["10", "10"], ["11", "11"], ["12", "12"], ["13", "13"], ["14", "14"], ["15", "15"]]), "ledChannel")
+ .appendField(new Blockly.FieldDropdown([
+ ["0", "0"],
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"],
+ ["8", "8"],
+ ["9", "9"],
+ ["10", "10"],
+ ["11", "11"],
+ ["12", "12"],
+ ["13", "13"],
+ ["14", "14"],
+ ["15", "15"]
+ ]), "ledChannel")
.appendField(Blockly.Msg.MIXLY_ANALOGWRITE_PIN);
this.appendValueInput("val")
.setCheck(null)
diff --git a/boards/default_src/arduino_esp32/blocks/mixepi.js b/boards/default_src/arduino_esp32/blocks/mixepi.js
index b7d43452..dfbeae2b 100644
--- a/boards/default_src/arduino_esp32/blocks/mixepi.js
+++ b/boards/default_src/arduino_esp32/blocks/mixepi.js
@@ -5,26 +5,24 @@ const DISPLAY_HUE = 180;
const SENSOR_HUE = 40;
const ACTUATOR_HUE = 100;
-var MIXEPI_ADXL345_ACTION = [
- [Blockly.Msg.HANDBIT_FORWARD, "accel.getAcceleration().x>-4.7&&accel.getAcceleration().x<0&&accel.getAcceleration().y<1&&accel.getAcceleration().y>-1&&accel.getAcceleration().z<-8&&accel.getAcceleration().z>-9.8"],
- [Blockly.Msg.HANDBIT_BACKWARD, "accel.getAcceleration().x>0&&accel.getAcceleration().x<4.7&&accel.getAcceleration().y<1&&accel.getAcceleration().y>-1&&accel.getAcceleration().z<-8&&accel.getAcceleration().z>-9.8"],
- [Blockly.Msg.HANDBIT_LEFT, "accel.getAcceleration().y>0&&accel.getAcceleration().y<5.5&&accel.getAcceleration().z<-7.5&&accel.getAcceleration().z>-9.8"],
- [Blockly.Msg.HANDBIT_RIGHT, "accel.getAcceleration().y<0&&accel.getAcceleration().y>-4.7&&accel.getAcceleration().z<-7.5&&accel.getAcceleration().z>-9.8"],
- [Blockly.Msg.HANDBIT_UP, "accel.getAcceleration().z>-9.8&&accel.getAcceleration().z<-8"],
- [Blockly.Msg.HANDBIT_DOWN, "accel.getAcceleration().z>8&&accel.getAcceleration().z<9.8"]
-];
-
-
-
-var BRIGHTNESS_SELECT = [["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"], ["7", "7"], ["8", "8"]];
-
export const brightness_select = {
init: function () {
this.setColour(DISPLAY_HUE);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown(BRIGHTNESS_SELECT), 'STAT');
+ .appendField(new Blockly.FieldDropdown(this.BRIGHTNESS_SELECT), 'STAT');
this.setOutput(true, Number);
- }
+ },
+ BRIGHTNESS_SELECT: [
+ ["0", "0"],
+ ["1", "1"],
+ ["2", "2"],
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"],
+ ["6", "6"],
+ ["7", "7"],
+ ["8", "8"]
+ ]
};
export const mixePi_button_is_pressed = {
@@ -79,7 +77,6 @@ export const mixepi_inout_touchRead = {
}
};
-
export const mixepi_ADXL345_action = {
init: function () {
this.setColour(SENSOR_HUE);
@@ -87,12 +84,20 @@ export const mixepi_ADXL345_action = {
.appendField("MIXEPI");
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
- .appendField(new Blockly.FieldDropdown(MIXEPI_ADXL345_ACTION), "MIXEPI_ADXL345_ACTION");
+ .appendField(new Blockly.FieldDropdown(this.MIXEPI_ADXL345_ACTION), "MIXEPI_ADXL345_ACTION");
this.setInputsInline(true);
this.setOutput(true);
this.setTooltip("");
this.setHelpUrl('');
- }
+ },
+ MIXEPI_ADXL345_ACTION: [
+ [Blockly.Msg.HANDBIT_FORWARD, "accel.getAcceleration().x>-4.7&&accel.getAcceleration().x<0&&accel.getAcceleration().y<1&&accel.getAcceleration().y>-1&&accel.getAcceleration().z<-8&&accel.getAcceleration().z>-9.8"],
+ [Blockly.Msg.HANDBIT_BACKWARD, "accel.getAcceleration().x>0&&accel.getAcceleration().x<4.7&&accel.getAcceleration().y<1&&accel.getAcceleration().y>-1&&accel.getAcceleration().z<-8&&accel.getAcceleration().z>-9.8"],
+ [Blockly.Msg.HANDBIT_LEFT, "accel.getAcceleration().y>0&&accel.getAcceleration().y<5.5&&accel.getAcceleration().z<-7.5&&accel.getAcceleration().z>-9.8"],
+ [Blockly.Msg.HANDBIT_RIGHT, "accel.getAcceleration().y<0&&accel.getAcceleration().y>-4.7&&accel.getAcceleration().z<-7.5&&accel.getAcceleration().z>-9.8"],
+ [Blockly.Msg.HANDBIT_UP, "accel.getAcceleration().z>-9.8&&accel.getAcceleration().z<-8"],
+ [Blockly.Msg.HANDBIT_DOWN, "accel.getAcceleration().z>8&&accel.getAcceleration().z<9.8"]
+ ]
};
export const mixepi_rgb_rainbow1 = {
@@ -110,18 +115,13 @@ export const mixepi_rgb_rainbow1 = {
}
};
-var DISPLAY_RAINBOW_TYPE = [
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
-];
-
export const mixepi_rgb_rainbow3 = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RGB);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown(DISPLAY_RAINBOW_TYPE), "TYPE");
+ .appendField(new Blockly.FieldDropdown(this.DISPLAY_RAINBOW_TYPE), "TYPE");
this.appendValueInput("rainbow_color")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -129,7 +129,11 @@ export const mixepi_rgb_rainbow3 = {
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
- }
+ },
+ DISPLAY_RAINBOW_TYPE: [
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
+ ]
};
export const RGB_color_seclet = {
@@ -225,5 +229,4 @@ export const mixepi_rgb_Brightness = {
this.setNextStatement(true, null);
this.setTooltip('');
}
-};
-
+};
\ No newline at end of file
diff --git a/boards/default_src/arduino_esp32/blocks/mixgo.js b/boards/default_src/arduino_esp32/blocks/mixgo.js
index 3a04a6da..372d7148 100644
--- a/boards/default_src/arduino_esp32/blocks/mixgo.js
+++ b/boards/default_src/arduino_esp32/blocks/mixgo.js
@@ -23,11 +23,6 @@ export const HT16K33_TEXT = {
//执行器_点阵屏显示_画点显示
export const HT16K33_POS = {
init: function () {
- //执行器_点阵屏显示_画点变量
- var MixGo_DrawPixel_NUM = [
- [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, "LED_ON"],
- [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, "LED_OFF"]
- ];
this.setColour(DISPLAY_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_monitor);
@@ -42,12 +37,16 @@ export const HT16K33_POS = {
this.appendDummyInput("")
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_SHOWPOINT)
- .appendField(new Blockly.FieldDropdown(MixGo_DrawPixel_NUM), "DrawPixel_TYPE");
+ .appendField(new Blockly.FieldDropdown(this.DRAW_TYPE), "DrawPixel_TYPE");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip("");
- }
+ },
+ DRAW_TYPE: [
+ [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, "LED_ON"],
+ [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, "LED_OFF"]
+ ]
};
//执行器_点阵屏显示_显示图案
@@ -211,7 +210,6 @@ export const HT16K33_LedArray = {
.appendField(new Blockly.FieldCheckbox("FALSE"), "a116");
this.setOutput(true, Number);
this.setTooltip();
-
}
};
@@ -328,7 +326,6 @@ export const mixgo_button_is_pressed = {
}
};
-
export const sensor_mixgo_light = {
init: function () {
this.setColour(Blockly.Msg['SENSOR_HUE']);
@@ -370,7 +367,10 @@ export const sensor_mixgo_pin_near = {
init: function () {
this.setColour(Blockly.Msg['SENSOR_HUE']);
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, "34"], [Blockly.Msg.TEXT_TRIM_RIGHT, "36"]]), "direction")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.TEXT_TRIM_LEFT, "34"],
+ [Blockly.Msg.TEXT_TRIM_RIGHT, "36"]
+ ]), "direction")
.appendField(Blockly.Msg.MIXLY_ESP32_NEAR);
this.setOutput(true, Boolean);
this.setInputsInline(true);
@@ -387,13 +387,17 @@ export const sensor_mixgo_pin_near = {
});
}
};
+
export const mixGo_led = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETTING)
.appendField(Blockly.Msg.MIXLY_BUILDIN_LED)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, "0"], [Blockly.Msg.MIXLY_RIGHT, "5"]]), 'STAT');
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_LEFT, "0"],
+ [Blockly.Msg.MIXLY_RIGHT, "5"]
+ ]), 'STAT');
this.appendValueInput('bright')
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
this.setPreviousStatement(true, null);
@@ -409,7 +413,10 @@ export const mixGo_led_brightness = {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETTING)
.appendField(Blockly.Msg.MIXLY_BUILDIN_LED)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, "0"], [Blockly.Msg.MIXLY_RIGHT, "5"]]), 'STAT');
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_LEFT, "0"],
+ [Blockly.Msg.MIXLY_RIGHT, "5"]
+ ]), 'STAT');
this.appendValueInput('bright')
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
this.setPreviousStatement(true, null);
@@ -434,18 +441,13 @@ export const MixGo_rgb_rainbow1 = {
}
};
-var DISPLAY_RAINBOW_TYPE = [
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
- [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
-];
-
export const MixGo_rgb_rainbow3 = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RGB);
this.appendDummyInput("")
- .appendField(new Blockly.FieldDropdown(DISPLAY_RAINBOW_TYPE), "TYPE");
+ .appendField(new Blockly.FieldDropdown(this.DISPLAY_RAINBOW_TYPE), "TYPE");
this.appendValueInput("rainbow_color")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -453,7 +455,11 @@ export const MixGo_rgb_rainbow3 = {
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
- }
+ },
+ DISPLAY_RAINBOW_TYPE: [
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_1, "normal"],
+ [Blockly.Msg.MIXLY_RGB_DISPLAY_RAINBOW_TYPE_2, "change"]
+ ]
};
export const MixGo_rgb = {
@@ -512,6 +518,7 @@ export const MixGo_rgb_Brightness = {
this.setTooltip('');
}
};
+
export const MixGo_rgb_show = {
init: function () {
this.setColour(ACTUATOR_HUE);
diff --git a/boards/default_src/arduino_esp32/blocks/pinout.js b/boards/default_src/arduino_esp32/blocks/pinout.js
index 540c5dae..e634e58a 100644
--- a/boards/default_src/arduino_esp32/blocks/pinout.js
+++ b/boards/default_src/arduino_esp32/blocks/pinout.js
@@ -2,7 +2,6 @@ import * as Blockly from 'blockly/core';
const PINOUT_HUE = '#555555';
-
export const esp32_pin = {
init: function () {
this.appendDummyInput()
diff --git a/boards/default_src/arduino_esp32/blocks/pins.js b/boards/default_src/arduino_esp32/blocks/pins.js
index ba699007..935a7c33 100644
--- a/boards/default_src/arduino_esp32/blocks/pins.js
+++ b/boards/default_src/arduino_esp32/blocks/pins.js
@@ -20,6 +20,7 @@ export const pins_button = {
this.setOutput(true, Number);
}
};
+
export const pins_sda = {
init: function () {
this.setColour(PINS_HUE);
@@ -100,6 +101,7 @@ export const pins_axis = {
this.setOutput(true, Number);
}
};
+
export const pins_brightness = {
init: function () {
this.setColour(PINS_HUE);
@@ -172,7 +174,6 @@ export const brightness = {
}
};
-
export const CHANNEL = {
init: function () {
this.setColour(PINS_HUE);
diff --git a/boards/default_src/arduino_esp32/blocks/pocketcard.js b/boards/default_src/arduino_esp32/blocks/pocketcard.js
index e254fbef..60c7525d 100644
--- a/boards/default_src/arduino_esp32/blocks/pocketcard.js
+++ b/boards/default_src/arduino_esp32/blocks/pocketcard.js
@@ -81,6 +81,7 @@ export const MPU9250_update = {
this.setInputsInline(true);
}
};
+
export const Pocket_rgb = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -128,6 +129,7 @@ export const Pocket_rgb_Brightness = {
this.setTooltip('');
}
};
+
export const Pocket_rgb_show = {
init: function () {
this.setColour(ACTUATOR_HUE);
@@ -137,6 +139,7 @@ export const Pocket_rgb_show = {
this.setNextStatement(true, null);
}
};
+
export const pocket_RGB_color_HSV = {
init: function () {
this.setColour(ACTUATOR_HUE);
diff --git a/boards/default_src/arduino_esp32/blocks/sensor.js b/boards/default_src/arduino_esp32/blocks/sensor.js
index 8ca2dfe4..e6739ad3 100644
--- a/boards/default_src/arduino_esp32/blocks/sensor.js
+++ b/boards/default_src/arduino_esp32/blocks/sensor.js
@@ -36,7 +36,13 @@ export const OneButton = {
.appendField(new Blockly.FieldDropdown(Profile.default.button), 'PIN');
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_BUTTON)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_CLICK, "attachClick"], [Blockly.Msg.MIXLY_DOUBLE_CLICK, "attachDoubleClick"], [Blockly.Msg.MIXLY_LONG_PRESS_START, "attachLongPressStart"], [Blockly.Msg.MIXLY_DURING_LONG_PRESS, "attachDuringLongPress"], [Blockly.Msg.MIXLY_LONG_PRESS_END, "attachLongPressStop"]]), "mode");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_CLICK, "attachClick"],
+ [Blockly.Msg.MIXLY_DOUBLE_CLICK, "attachDoubleClick"],
+ [Blockly.Msg.MIXLY_LONG_PRESS_START, "attachLongPressStart"],
+ [Blockly.Msg.MIXLY_DURING_LONG_PRESS, "attachDuringLongPress"],
+ [Blockly.Msg.MIXLY_LONG_PRESS_END, "attachLongPressStop"]
+ ]), "mode");
this.appendStatementInput('DO')
.appendField(Blockly.Msg.MIXLY_DO);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);
@@ -47,16 +53,16 @@ export const OneButton = {
export const ESP_TCS34725_Get_RGB = {
init: function () {
- const TCS34725_COLOR = [
- [Blockly.Msg.COLOUR_RGB_RED, "r"],
- [Blockly.Msg.COLOUR_RGB_GREEN, "g"],
- [Blockly.Msg.COLOUR_RGB_BLUE, "b"],
- ];
this.setColour(SENSOR_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.TCS34725_Get_RGB)
- .appendField(new Blockly.FieldDropdown(TCS34725_COLOR), "TCS34725_COLOR");
+ .appendField(new Blockly.FieldDropdown(this.TCS34725_COLOR), "TCS34725_COLOR");
this.setInputsInline(true);
this.setOutput(true);
- }
+ },
+ TCS34725_COLOR: [
+ [Blockly.Msg.COLOUR_RGB_RED, "r"],
+ [Blockly.Msg.COLOUR_RGB_GREEN, "g"],
+ [Blockly.Msg.COLOUR_RGB_BLUE, "b"],
+ ]
};
\ No newline at end of file
diff --git a/boards/default_src/arduino_esp32/blocks/serial.js b/boards/default_src/arduino_esp32/blocks/serial.js
index ab488546..403a35d5 100644
--- a/boards/default_src/arduino_esp32/blocks/serial.js
+++ b/boards/default_src/arduino_esp32/blocks/serial.js
@@ -60,7 +60,10 @@ export const serial_print = {
this.appendValueInput("CONTENT", String)
.appendField(new Blockly.FieldDropdown(Profile.default.serial_HardwareSelect), "serial_select")
.appendField(Blockly.Msg.MIXLY_SERIAL_PRINT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PRINT_INLINE, "print"], [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]]), "new_line");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_PRINT_INLINE, "print"],
+ [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]
+ ]), "new_line");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);
@@ -73,24 +76,34 @@ export const serial_println = {
this.appendValueInput("CONTENT", String)
.appendField(new Blockly.FieldDropdown(Profile.default.serial_HardwareSelect), "serial_select")
.appendField(Blockly.Msg.MIXLY_SERIAL_PRINT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"], [Blockly.Msg.MIXLY_PRINT_INLINE, "print"]]), "new_line");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"],
+ [Blockly.Msg.MIXLY_PRINT_INLINE, "print"]
+ ]), "new_line");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);
}
};
-
export const serial_print_num = {
init: function () {
this.setColour(SERIAL_HUE);
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown(Profile.default.serial_HardwareSelect), "serial_select")
.appendField(Blockly.Msg.MIXLY_SERIAL_PRINT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PRINT_INLINE, "print"], [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]]), "new_line")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_PRINT_INLINE, "print"],
+ [Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP, "println"]
+ ]), "new_line")
.appendField(Blockly.Msg.MIXLY_NUMBER);
this.appendValueInput("CONTENT", Number)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MATH_HEX, "HEX"], [Blockly.Msg.MATH_BIN, "BIN"], [Blockly.Msg.MATH_OCT, "OCT"], [Blockly.Msg.MATH_DEC, "DEC"]]), "STAT")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MATH_HEX, "HEX"],
+ [Blockly.Msg.MATH_BIN, "BIN"],
+ [Blockly.Msg.MATH_OCT, "OCT"],
+ [Blockly.Msg.MATH_DEC, "DEC"]
+ ]), "STAT")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -142,7 +155,12 @@ export const serial_parseInt_Float = {
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown(Profile.default.serial_HardwareSelect), "serial_select")
//.appendField(Blockly.Msg.MIXLY_SERIAL_READ)
- .appendField(new Blockly.FieldDropdown([["read", "read"], ["peek", "peek"], ["parseInt", "parseInt"], ["parseFloat", "parseFloat"]]), "STAT");
+ .appendField(new Blockly.FieldDropdown([
+ ["read", "read"],
+ ["peek", "peek"],
+ ["parseInt", "parseInt"],
+ ["parseFloat", "parseFloat"]
+ ]), "STAT");
this.setOutput(true, Number);
var thisBlock = this;
this.setTooltip(function () {
@@ -167,6 +185,7 @@ export const serial_flush = {
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SERIAL_FLUSH);
}
};
+
export const serial_softserial = {
init: function () {
this.setColour(SERIAL_HUE);
diff --git a/boards/default_src/arduino_esp32/blocks/storage.js b/boards/default_src/arduino_esp32/blocks/storage.js
index fdba8ade..ef612c4c 100644
--- a/boards/default_src/arduino_esp32/blocks/storage.js
+++ b/boards/default_src/arduino_esp32/blocks/storage.js
@@ -14,10 +14,6 @@ export const initialize_spiffs = {
this.setHelpUrl("");
}
};
-var OPEN_MODE = [
- [Blockly.Msg.MIXLY_READONLY, 'FILE_READ'],
- [Blockly.Msg.TEXT_WRITE_TEXT, 'FILE_WRITE'],
- [Blockly.Msg.TEXT_APPEND_APPENDTEXT, 'FILE_APPEND']]
//打开文件并向其中写入数据
export const spiffs_open_file = {
@@ -33,14 +29,19 @@ export const spiffs_open_file = {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MODE);
this.appendDummyInput()
- .appendField(new Blockly.FieldDropdown(OPEN_MODE), 'MODE');
+ .appendField(new Blockly.FieldDropdown(this.OPEN_MODE), 'MODE');
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(STORAGE_HUE);
this.setTooltip("");
this.setHelpUrl("");
- }
+ },
+ OPEN_MODE: [
+ [Blockly.Msg.MIXLY_READONLY, 'FILE_READ'],
+ [Blockly.Msg.TEXT_WRITE_TEXT, 'FILE_WRITE'],
+ [Blockly.Msg.TEXT_APPEND_APPENDTEXT, 'FILE_APPEND']
+ ]
};
//打开文件并向其中写入数据
@@ -58,6 +59,7 @@ export const spiffs_close_file = {
this.setHelpUrl("");
}
};
+
//将数据追加到文件
export const spiffs_write_data = {
init: function () {
@@ -77,6 +79,7 @@ export const spiffs_write_data = {
this.setHelpUrl("");
}
};
+
//文件可读
export const spiffs_read_available = {
init: function () {
diff --git a/boards/default_src/arduino_esp8266/template.xml b/boards/default_src/arduino_esp8266/template.xml
index 75e0bc66..ac78383b 100644
--- a/boards/default_src/arduino_esp8266/template.xml
+++ b/boards/default_src/arduino_esp8266/template.xml
@@ -726,21 +726,13 @@
-
-
-
-
-
+
-
-
-
-
-
+
@@ -784,27 +776,27 @@
- 3
+ 4
- 4
+ 5
- 5
+ 12
- 6
+ 13
- 7
+ 14
@@ -1019,9 +1011,7 @@
-
-
-
+
@@ -1105,7 +1095,7 @@
- 6
+ 12
@@ -1166,20 +1156,16 @@
-
-
-
-
-
+
- 1
+ 2
- 2
+ 4
@@ -1196,22 +1182,22 @@
- 1
+ 2
- 2
+ 4
- 3
+ 5
- 4
+ 12
@@ -1328,14 +1314,14 @@
- 8
+
- 8
+
@@ -1347,7 +1333,7 @@
- 8
+
@@ -1370,12 +1356,12 @@
mySerial
- 10
+
- 11
+
@@ -1516,11 +1502,6 @@
4
-
-
- 20
-
-
@@ -1589,11 +1570,6 @@
20
-
-
- 20
-
-
@@ -1633,11 +1609,6 @@
2345
-
-
- 300
-
-
@@ -1650,10 +1621,6 @@
30
-
-
-
-
@@ -1706,7 +1673,7 @@
0
- 1
+ 1
@@ -1743,9 +1710,6 @@
SSD1306_128X64_NONAME
U8G2_R0
- 10
- 9
- 8
@@ -1766,7 +1730,6 @@
- 10
@@ -1778,17 +1741,13 @@
-
-
-
-
-
-
+
+
+
page1
- timR08_tr
@@ -1823,13 +1782,8 @@
2
STHeiti
16
- hz_up
- 0
- hz_left
- 0
48
16
- TRUE
米思齐
@@ -1880,7 +1834,6 @@
0
-
@@ -1893,7 +1846,6 @@
20
-
@@ -2094,11 +2046,6 @@
-
-
- SDA
-
-
SCL
@@ -2221,9 +2168,6 @@
-
-
-
32
@@ -2688,7 +2632,6 @@
- V0
1000
@@ -3271,11 +3214,6 @@
120
-
-
- Topic_0
-
-